ros(23):在rviz中接收2D导航目标和2D姿态估计消息
此工具可让您设置在“目标”ROS主题上发送的目标。单击地平面上的某个位置并拖动以选择方向:
二维导航目标
该工具允许您设置在“目标”ROS主题上发送的目标。单击地平面上的某处并拖动以选择方向:
即设置一个二维导航目标,使用主题“goal”进行交流
消息类型为:geometry_msgs/PoseStamped
meng@meng:~/ideas/ros_ws$rosmsginfoometry_msgs/PoseStampedstd_msgs/Header头uint32seq时间戳字符串frame_idgeometry_msgs/Pose姿势geometry_msgs/点位置float64xfloat64yfloat64zGeometry_msgs/四元数方向float64xfloat64yfloat64zfloat64w
此工具可让您设置初始姿势来播种定位系统。单击地平面上的某个位置并拖动以选择方向:
2D姿态估计
该工具允许您设置初始姿势来播种定位系统。单击地平面上的某处并拖动以选择方向:
即设置二维初始姿态并使用“initialpose”进行通信
消息类型为:geometry_msgs/PoseWithCovarianceStamped
meng@meng:~/ideas/ros_ws$rosmsginfogeometry_msgs/PoseWithCovarianceStampedstd_msgs/Headerheaderuint32seqtimestampstringframe_idgeometry_msgs/PoseWithCovarianceposegeometry_msgs/Poseposegeometry_msgs/Pointpositionfloat64xfloat64yfloat64zgeometry_msgs/Quaternionorientationfloat64xfloat64yfloat64zfloat64wfloat64[36]协方差
面板--工具属性
订阅起点位姿和终点主题并打印输出的C++文件:receive_2d_nav_goal.cpp
#include'ros/ros.h'#include'std_msgs/String.h'#includeGeometry_msgs/PoseWithCovarianceStamped.h#includeiostream#includeGeometry_msgs/PoseStamped.hvoidchatterCallback(constGeometry_msgs:PoseWithCovarianceStamped:ConstPtrmsg){doublex=msg-pose.pose.位置.x;双y=msg-pose.pose.position.y;std:coutxystd:endl;}无效chatterCallback1{std:cout'1111'std:endl;双x=msg-pose.position.x;双y=msg-pose.position.y;std:coutxystd:endl;}intmain(intargc,char**argv){ros:init(argc,argv,'reveive_rviz');ros:NodeHandlenh;ros:SSubscribersub=nh.subscribe('/initialpose',1,chatterCallback);//队列长度:1000或1或其他ros:Subscribersub1=nh.subscribe('/move_base_simple/goal',1,chatterCallback1);//队列长度:1000或1或其他while(ros:ok()){ros:spinOnce();}return0;}
启动rviz和节点程序,使用2DNavGoal、2DPoseEstimate在rviz中进行标记,即可打印出:
订阅开始姿势和结束点并保持发布:
#include'ros/ros.h'#include'std_msgs/String.h'#includeGeometry_msgs/PoseWithCovarianceStamped.h#includeiostream#includeGeometry_msgs/PoseStamped.hros:Publisherinitialpose_pub,goal_pub;geometry_msgs:PoseWithCovarianceStampedinitialpose_tmp;//设置为全局变量,你可以已经发布了geometry_msgs:PoseStampedgoal_tmp;voidinitialpose_handler(constGeometry_msgs:PoseWithCovarianceStamped:ConstPtrmsg){doublex=msg-pose.pose.position.x;双y=msg-pose.pose.position.y;std:cout'起始点坐标:('x','y')'std:endl;初始姿势_tmp=*msg;//initialpose_tmp.header=msg-header;//initialpose_tmp.header=msg-header;initialpose_pub.publish(initialpose_tmp);}voidgoal_handler(constGeometry_msgs:PoseStamped:ConstPtrmsg){doublex=msg-pose.position.x;双y=msg-pose.position.y;std:cout'终点坐标:('x','y')'std:endl;goal_tmp=*消息;goal_pub.publish(*msg);}intmain(intargc,char**argv){ros:init(argc,argv,'reveive_rviz');ros:NodeHandlenh;ros:Subscribersub=nh.subscribe('/initialpose',1,initialpose_handler);//将1000改为1ros:Subscribersub1=nh.subscribe('/move_base_simple/goal',1,goal_handler);//1000改为1initialpose_pub=nh.advertisegeometry_msgs:PoseWithCovarianceStamped('initialpose_my',1);goal_pub=nh.advertisegeometry_msgs:PoseStamped('goal_my',1);while(ros:ok()){ros:spinOnce();}返回0;}
2DNavGoal和2DPoseEstimate功能介绍:rviz/UserGuide-ROSWiki
2D导航目标和2D姿态估计的消息类型:导航/教程/将rviz与导航堆栈结合使用-ROSWiki
大家好,今天小编关注到一个比较有意思的话题,就是关于培训机构学习linux的问题,于是小编就整理了3个相关介绍培训机构学习linux的解答,让我们一起看看吧。l…
大家好,今天小编关注到一个比较有意思的话题,就是关于云计算培训linux机构的问题,于是小编就整理了3个相关介绍云计算培训linux机构的解答,让我们一起看看吧…
大家好,今天小编关注到一个比较有意思的话题,就是关于以色列印度培训机构的问题,于是小编就整理了4个相关介绍以色列印度培训机构的解答,让我们一起看看吧。亚训有哪些…
第十章STM32+ESP8266连接机智云,实现小型物联网智能家居项目前言最近有很多朋友私信,要求我推出一个关于远程控制以及通过APP获取传感器信息的实验教程。…
type="module"你知道,但是type="importmap"你知道有新系列:Vue2和Vue3技能手册如果你有梦想,有实用信息,就微信搜索【大世界运动…
2024-10-23 15:00:05
2024-10-23 10:48:05
2024-10-23 08:48:12
2024-10-23 06:36:10
2024-10-23 04:48:07
大家好,今天小编关注到一个比较有意思的话题,就是关于电脑培训有时间要求吗的问题,…
大家好,今天小编关注到一个比较有意思的话题,就是关于新手学电脑选啥电脑好的问题,…