当前位置: 首页 > news >正文

杭州网站建设杭州手机网站建设/百度指数官方版

杭州网站建设杭州手机网站建设,百度指数官方版,企业网站模板文件管理,百度官方营销推广平台一、创建一个包——进行marker练习 1、创建ROS工作空间和包 mkdir -p ~/catkin_ws/src #创建工作空间目录#创建ROS数据包 catkin_create_pkg using_markers roscpp visualization_msgs #打开包根目录,进行编译 cd ~/catkin_ws catkin_make 2、编写cpp文件&a…

一、创建一个包——进行marker练习

1、创建ROS工作空间和包

mkdir -p ~/catkin_ws/src       #创建工作空间目录#创建ROS数据包
catkin_create_pkg using_markers roscpp visualization_msgs   #打开包根目录,进行编译
cd ~/catkin_ws
catkin_make

 

 

2、编写cpp文件,向rviz发送数据

vim ~/catkin_ws/src/using_marker/src/using_markers.cpp

 

  贴入代码,代码中已经附加相关注释

#include <ros/ros.h>
#include <visualization_msgs/Marker.h>           //可视化int main( int argc, char** argv )
{//初始化ROS,幷且创建一个ROS::Publisher 在话题visualization_marker上面ros::init(argc, argv, "basic_shapes");ros::NodeHandle n;ros::Rate r(1);ros::Publisher marker_pub = n.advertise<visualization_msgs::Marker>("visualization_marker", 1);// Set our initial shape type to be a cube// 初始化形状为立方体uint32_t shape = visualization_msgs::Marker::CUBE;while (ros::ok()){//实例化一个Marker
    visualization_msgs::Marker marker;// Set the frame ID and timestamp.  See the TF tutorials for information on these.// 设置frame ID 和 时间戳marker.header.frame_id = "/my_frame";marker.header.stamp = ros::Time::now();// Set the namespace and id for this marker.  This serves to create a unique ID// Any marker sent with the same namespace and id will overwrite the old one// 为这个marker设置一个独一无二的ID,一个marker接收到相同ns和id就会用新的信息代替旧的marker.ns = "basic_shapes";marker.id = 0;// Set the marker type.  Initially this is CUBE, and cycles between that and SPHERE, ARROW, and CYLINDER// 设置marker类型,初始化是立方体。将进行循环marker.type = shape;// Set the marker action.  Options are ADD, DELETE, and new in ROS Indigo: 3 (DELETEALL)marker.action = visualization_msgs::Marker::ADD;// Set the pose of the marker.  This is a full 6DOF pose relative to the frame/time specified in the header// 设置marker的位置marker.pose.position.x = 0;marker.pose.position.y = 0;marker.pose.position.z = 0;marker.pose.orientation.x = 0.0;marker.pose.orientation.y = 0.0;marker.pose.orientation.z = 0.0;marker.pose.orientation.w = 1.0;// Set the scale of the marker -- 1x1x1 here means 1m on a side// 设置marker的大小marker.scale.x = 1.0;marker.scale.y = 1.0;marker.scale.z = 1.0;// Set the color -- be sure to set alpha to something non-zero!// 设置marker的颜色marker.color.r = 0.0f;marker.color.g = 1.0f;marker.color.b = 0.0f;marker.color.a = 1.0;//取消自动删除marker.lifetime = ros::Duration();// Publish the marker// 必须有订阅者才会发布消息while (marker_pub.getNumSubscribers() < 1){if (!ros::ok()){return 0;}ROS_WARN_ONCE("Please create a subscriber to the marker");sleep(1);}marker_pub.publish(marker);// Cycle between different shapes// 连续改变形状switch (shape){case visualization_msgs::Marker::CUBE:shape = visualization_msgs::Marker::SPHERE;break;case visualization_msgs::Marker::SPHERE:shape = visualization_msgs::Marker::ARROW;break;case visualization_msgs::Marker::ARROW:shape = visualization_msgs::Marker::CYLINDER;break;case visualization_msgs::Marker::CYLINDER:shape = visualization_msgs::Marker::CUBE;break;}r.sleep();}
}

 

  在CMakeList.txt文件中加入

add_executable(basic_shapes src/basic_shapes.cpp)
target_link_libraries(basic_shapes ${catkin_LIBRARIES})

 

 

 

3、进行rviz设置

(1)打开roscore

(2)运行编写的发布器

rosrun using_marker basic_shapes

 

(3)重置rviz,运行rviz

rosmake rviz
rosrun rviz rviz

 

(4)在rviz中进行设置

 

4、rviz最终效果显示:4个图形进行连续的变换

一、创建一个包——进行marker练习

1、创建ROS工作空间和包

mkdir -p ~/catkin_ws/src       #创建工作空间目录#创建ROS数据包
catkin_create_pkg using_markers roscpp visualization_msgs   #打开包根目录,进行编译
cd ~/catkin_ws
catkin_make

 

2、编写cpp文件,向rviz发送数据

vim ~/catkin_ws/src/using_marker/src/using_markers.cpp

  贴入代码,代码中已经附加相关注释

#include <ros/ros.h>
#include <visualization_msgs/Marker.h>           //可视化int main( int argc, char** argv ) { //初始化ROS,幷且创建一个ROS::Publisher 在话题visualization_marker上面 ros::init(argc, argv, "basic_shapes"); ros::NodeHandle n; ros::Rate r(1); ros::Publisher marker_pub = n.advertise<visualization_msgs::Marker>("visualization_marker", 1); // Set our initial shape type to be a cube // 初始化形状为立方体 uint32_t shape = visualization_msgs::Marker::CUBE; while (ros::ok()) { //实例化一个Marker  visualization_msgs::Marker marker; // Set the frame ID and timestamp. See the TF tutorials for information on these. // 设置frame ID 和 时间戳 marker.header.frame_id = "/my_frame"; marker.header.stamp = ros::Time::now(); // Set the namespace and id for this marker. This serves to create a unique ID // Any marker sent with the same namespace and id will overwrite the old one // 为这个marker设置一个独一无二的ID,一个marker接收到相同ns和id就会用新的信息代替旧的 marker.ns = "basic_shapes"; marker.id = 0; // Set the marker type. Initially this is CUBE, and cycles between that and SPHERE, ARROW, and CYLINDER // 设置marker类型,初始化是立方体。将进行循环 marker.type = shape; // Set the marker action. Options are ADD, DELETE, and new in ROS Indigo: 3 (DELETEALL) marker.action = visualization_msgs::Marker::ADD; // Set the pose of the marker. This is a full 6DOF pose relative to the frame/time specified in the header // 设置marker的位置 marker.pose.position.x = 0; marker.pose.position.y = 0; marker.pose.position.z = 0; marker.pose.orientation.x = 0.0; marker.pose.orientation.y = 0.0; marker.pose.orientation.z = 0.0; marker.pose.orientation.w = 1.0; // Set the scale of the marker -- 1x1x1 here means 1m on a side // 设置marker的大小 marker.scale.x = 1.0; marker.scale.y = 1.0; marker.scale.z = 1.0; // Set the color -- be sure to set alpha to something non-zero! // 设置marker的颜色 marker.color.r = 0.0f; marker.color.g = 1.0f; marker.color.b = 0.0f; marker.color.a = 1.0; //取消自动删除 marker.lifetime = ros::Duration(); // Publish the marker // 必须有订阅者才会发布消息 while (marker_pub.getNumSubscribers() < 1) { if (!ros::ok()) { return 0; } ROS_WARN_ONCE("Please create a subscriber to the marker"); sleep(1); } marker_pub.publish(marker); // Cycle between different shapes // 连续改变形状 switch (shape) { case visualization_msgs::Marker::CUBE: shape = visualization_msgs::Marker::SPHERE; break; case visualization_msgs::Marker::SPHERE: shape = visualization_msgs::Marker::ARROW; break; case visualization_msgs::Marker::ARROW: shape = visualization_msgs::Marker::CYLINDER; break; case visualization_msgs::Marker::CYLINDER: shape = visualization_msgs::Marker::CUBE; break; } r.sleep(); } }

  在CMakeList.txt文件中加入

add_executable(basic_shapes src/basic_shapes.cpp)
target_link_libraries(basic_shapes ${catkin_LIBRARIES})

 

 

3、进行rviz设置

(1)打开roscore

(2)运行编写的发布器

rosrun using_marker basic_shapes

(3)重置rviz,运行rviz

rosmake rviz
rosrun rviz rviz

(4)在rviz中进行设置

 

4、rviz最终效果显示:4个图形进行连续的变换

 

转载于:https://www.cnblogs.com/BlueMountain-HaggenDazs/p/6523461.html

http://www.lbrq.cn/news/1369657.html

相关文章:

  • 宝安网站建设深圳信科/网址提交入口
  • 做外销b2b网站对比/搜索引擎推广的三种方式
  • 网站空间租用哪个好/网站seo综合诊断
  • 临朐网站建设价格/武汉软件测试培训机构排名
  • 网站没备案可以做商城吗/北京seo技术
  • 网站目录字典/化工网站关键词优化
  • 查找网站开发者/网站设计制作在哪能看
  • 时尚网站设计/友链交易平台
  • bootstrap网站模板/长尾关键词挖掘爱站网
  • 公司网站建设前期情况说明/关键词热度查询
  • 你学做网站学了多久/seo的五个步骤
  • 网站标题字符/十大免费域名
  • ts-428 WordPress/如何做seo
  • 怎么做微信小说网站/视频号链接怎么获取
  • 江门网站建设外包/yande搜索引擎官网入口
  • 移动端网站开发最好的环境/个人引流推广怎么做
  • 更改wordpress用户名/卢镇seo网站优化排名
  • 个人如何做网站/企业网站管理系统
  • 莱州网站建设青岛华夏商务网/seo优化主要工作内容
  • 郑州公司网站制作/以服务营销出名的企业
  • 遂昌建设局网站/0元做游戏代理
  • 哪个网站做招聘海报比较好/网络推广公司简介
  • 湿地公园网站建设/域名注册免费
  • 做明星网站/电子商务网站建设方案
  • 做网站和做微信小程序/百度关键词规划师
  • 搬家公司网站制作/百度百家
  • 绍兴网站建设服务/南宁网站seo外包
  • 动漫做暧视频在线观看网站/十大网站管理系统
  • 绥芬河市建设局网站/app数据分析软件
  • 软装设计素材网站/爱站关键词
  • 本地环境vue与springboot联调
  • 决策树学习全解析:从理论到实战
  • Java学习第一百部分——Kafka
  • 【相机】曝光时间长-->拖影
  • 操作系统:远程过程调用( Remote Procedure Call,RPC)
  • AG32mcu通过寄存器方式操作cpld