ros(25):发布一个静态的里程计odom信息
有时为了验证程序可以运行,需要给程序输入一个里程计信息;有时为了在实车实验前验证程序,需要修改不同的里程计数据(可以在下面代码中增加一个odom_tmp的数组,或者用循环来使odom_tmp值变化),下面这个c++代码可以实现这个功能:
pub_odom.cpp
#include "ros/ros.h"
#include "std_msgs/String.h"
#include <geometry_msgs/PoseWithCovarianceStamped.h>
#include <iostream>
#include <geometry_msgs/PoseStamped.h>
#include "nav_msgs/OccupancyGrid.h"
#include "nav_msgs/Odometry.h"
#include <tf/transform_datatypes.h>
#include <tf/transform_broadcaster.h>
#include <Eigen/Dense>ros::Publisher pubCarpositiopn;void odom_pub(){nav_msgs::Odometry odom_tmp;odom_tmp.header.frame_id = "/camera_init";odom_tmp.child_frame_id ="/aft_mapped";odom_tmp.header.stamp = ros::Time::now(); //参数可以改动odom_tmp.pose.pose.position.x=-0.1;odom_tmp.pose.pose.position.y=9;odom_tmp.pose.pose.position.z=0;// odom_tmp.pose.pose.orientation.x=0;// odom_tmp.pose.pose.orientation.y=0;// odom_tmp.pose.pose.orientation.z=0;// odom_tmp.pose.pose.orientation.w=1;// 绕z轴旋转90°//参数可以改动odom_tmp.pose.pose.orientation.x=0.707;odom_tmp.pose.pose.orientation.y=0;odom_tmp.pose.pose.orientation.z=0;odom_tmp.pose.pose.orientation.w=0.707;pubCarpositiopn.publish(odom_tmp);
}int main(int argc, char **argv)
{ros::init(argc, argv, "pub_odom");ros::NodeHandle nh;pubCarpositiopn = nh.advertise<nav_msgs::Odometry>("/aft_mapped_to_init", 1);//显示车辆/雷达在地图中的位置ros::Rate rate_10hz(10); while(ros::ok()){odom_pub();rate_10hz.sleep();}return 0;
}
rviz效果:
ros(25):发布一个静态的里程计odom信息相关推荐
- 【cartographer_ros】四: 发布和订阅里程计odom信息
上一节介绍了激光雷达Scan传感数据的订阅和发布. 本节会介绍里程计Odom数据的发布和订阅.里程计在cartographer中主要用于前端位置预估和后端优化. 官方文档: http://wiki.r ...
- 【cartographer without ros】四、里程计odom数据转换
上一节介绍了cartographer中的TimedPointCloudData数据相关转换. 本节将介绍里程计Odom数据转换为cartographer中的OdometryData数据.还有carto ...
- 发布里程计传感器信息
一.ROS使用tf来决定机器人的位置和静态地图中的传感器数据,但是tf中没有机 器人的速度信息,所以导航功能包要求机器人 能够通过里程计信息源发布包含速度信息的里程计nav_msgs/Odometry ...
- 在ROS平台使用扩展卡尔曼融合里程计与IMU传感器
里程计的问题 里程计在转弯的时候, 能容易发生飘移现象,而且精度也不高, 容易产生累积误差 因此, 笔者想到了能不能通过imu来提高机器人的定位效果, 本文采用扩展卡尔曼滤波, ros上的功能包为ro ...
- 再发布一个windows live writer 插件 图标信息框 wlw plugin icon info frame
原地址: http://www.zu14.cn/2008/12/14/wlw_plugin_icontip/ 自上次发布 windows live writer 插件 coolemotion 之后,已 ...
- 基于ROS与C++,只利用IMU实现里程计和计步器,精确计算行走距离
老规矩,开门见山,先说说本篇文章实现了什么: 1.只使用IMU模块,实现了对于人行走距离的检测(精度在0.5m左右) 2.只使用IMU模块,通过峰值检测\机器学习两个方法,实现了一个精确的计步器 背景 ...
- ROS里程计的学习(odometry) (三)
机器人差分运动模型如上图: 假设我们知道左右轮的速度,则线速度为V=(Vl+Vr)/2 角速度为W=(Vr-Vl)/l 圆弧运动半径为r=V/W 公式①:机器人前进速度等于两轮速度之和 ...
- 视觉和Lidar里程计SOTA方法一览!(Camera/激光雷达/多模态)
点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心[SLAM]技术交流群 后台回复[SLAM综述]获取视觉SLAM.激光SLAM.RGBD ...
- 里程计运动模型及标定
文章目录 1 里程计运动模型 1.1 两轮差分底盘的运动模型 1.2 三轮全向底盘的运动学模型 1.3 航迹推算(Dead Reckoning) 2 里程计标定 2.1 线性最小二乘的基本原理 2.2 ...
最新文章
- 2022-2028年全球与中国人字拖市场研究及前瞻分析报告
- 苹果放大招?「廉价版」5G iPhone 将揭晓,M2芯片来袭?
- python如何输入和输出_输入和输出
- [Leedcode][JAVA][第542题][01矩阵][BFS]
- 计算机检索技术与技巧的检索式为,第四章计算机检索技术和数据库检索方式.ppt...
- java 进制转换算法_算法笔记_033:十六进制转八进制(Java)
- _declspec(naked) 使用
- 好莱坞标志将以NFT形式进行慈善拍卖
- python之Excel操作
- tomcat7 java_java开发环境配置(windows下JDK7+tomcat7)
- MacBook进阶技巧,如何在触控栏添加一键截屏?
- php ddos 防御,PHP DDos的几个防御方法详解
- 基于3DGIS+BIM的房屋出售管理系统
- Python使用打码平台进行识别验证码
- vim 配置(ma6174 + YCM)
- .Net Core MVC使用EF
- 辰智:2018中国餐饮大数据白皮书
- 这 5 款软件,让你的电脑变得更高效!
- 智慧医院3D导航导诊系统-基础功能详解
- 【javaweb简单教程】1.搭建Web环境、初识JSP
热门文章
- 微信小程序中的typeof cb == “function” cb(that.globalData.userInfo)
- rime|小狼毫 显示元素信息效果
- 【运筹优化】SMO蜘蛛猴优化算法求解无约束多元函数最值(Java代码实现)
- 美通社持续加强亚太地区新闻发布网络
- ffmpeg硬编解码 Inter QSV
- HSIC一种基于USB的高速芯片通讯协议
- 【分布式系统】CAP定理是什么?
- Eclipse如何下载安装汉化版
- 百度云身份证识别以及获取身份证信息
- FRED在杂散光分析中的应用