jjzjj

多传感器ROS rviz显示,TF转换(如雷达和激光雷达)

MendozaG 2024-01-05 原文

当我们拿到不同的传感器时,我们在调试后希望将他们用ros下的rviz显示在同一页面下,相机(image)和单一的传感器显示通常比较简单,往往我们加入两个有空间坐标的传感器会报错,没有转换关系或者xx frame不存在。这是因为在ROS中,我们需要建立一个rf-tree来管理我们的传感器坐标使其统一,拿出某一点就可以得到其在不同坐标系下的坐标。往往传感器的默认frame都不同,这时候我们需要将其统一方能在同一页面显示。

拿到传感器,我们运行其结点/或发布,使用

rostopic list

查看当前发布的话题,看看我们需要现实的话题是否已发布。

例如点云数据,我们查找其frame_id可以通过:

rostopic ehco /xxxx | grep frame_id

这样可以看到显示的frame_id

显然两者处于不同的坐标下未产生联系,这样自然无法显示。

这时最简单的做法就是利用TF官方文档说的

http://wiki.ros.org/tfhttp://wiki.ros.org/tf

rosrun tf static_transform_publisher 0 0 0 0 0 0 base_link rslidar 20
含义:
rosrun tf static_transform_publisher x y z yaw pitch roll frame_id child_frame_id period_in_ms
或者
rosrun tf static_transform_publisher x y z qx qy qz qw frame_id child_frame_id  period_in_ms

这样就可以将rslidar转化为base_link(当然 0 0 0 0 0 0并不是实际情况)

还可以在launch文件中添加:

<launch>
   <node pkg="tf" type="static_transform_publisher" name="link1_broadcaster" args="1 0 0 0 0 0 1 link1_parent link1 100" />
   </launch>

我们可以使用以下指令来查看当前的tf关系:

rosrun tf view_frames

会在当前(terminal打开的)文件夹下生成一个frames.pdf文档,绘制着树状关系。

注意:当发生缺少yaml文件等报错时,往往是由于安装的python版本的问题,找到对应的文件打开,改为对应的python版本如 python2(若安装的是python2.7)或python3。

使用下述命令直接查看树状图与转换关系

rosrun rqt_tf_tree rqt_tf_tree

核对树状关系,rslidar和base_link产生了联系。

通过

rostopic echo /tf -n1

可以输出一次的变换:

-----------------------------------------------------------------------------------------------------------------------

现在我们来说在rviz中显示的问题:

1.运行节点/launch文件;

2.运行tf转换关系;

3.打开rviz,添加tf(点击add->By display type->TF),展开TF可以看到几个frame的转换关系,是否ok;

4.选取共有的(统一的)frame作为世界坐标的Fixed Frame,完成显示;

5.调整显示的点云等大小颜色等特性,保存为.rviz配置文件以便下次方便使用。

完成显示!

推荐学习内容:

ROS中TF(坐标系转换)原理与使用 - 前路有光,初心莫忘 - 博客园

 https://www.youtube.com/watch?v=Ra-nXIfPWdg

https://www.youtube.com/watch?v=dBATvRhvGRI&t=2706s

有关多传感器ROS rviz显示,TF转换(如雷达和激光雷达)的更多相关文章

  1. ruby-on-rails - 在 Rails 中将文件大小字符串转换为等效千字节 - 2

    我的目标是转换表单输入,例如“100兆字节”或“1GB”,并将其转换为我可以存储在数据库中的文件大小(以千字节为单位)。目前,我有这个:defquota_convert@regex=/([0-9]+)(.*)s/@sizes=%w{kilobytemegabytegigabyte}m=self.quota.match(@regex)if@sizes.include?m[2]eval("self.quota=#{m[1]}.#{m[2]}")endend这有效,但前提是输入是倍数(“gigabytes”,而不是“gigabyte”)并且由于使用了eval看起来疯狂不安全。所以,功能正常,

  2. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  3. ruby-on-rails - Rails 编辑表单不显示嵌套项 - 2

    我得到了一个包含嵌套链接的表单。编辑时链接字段为空的问题。这是我的表格:Editingkategori{:action=>'update',:id=>@konkurrancer.id})do|f|%>'Trackingurl',:style=>'width:500;'%>'Editkonkurrence'%>|我的konkurrencer模型:has_one:link我的链接模型:classLink我的konkurrancer编辑操作:defedit@konkurrancer=Konkurrancer.find(params[:id])@konkurrancer.link_attrib

  4. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  5. ruby - 将数组的内容转换为 int - 2

    我需要读入一个包含数字列表的文件。此代码读取文件并将其放入二维数组中。现在我需要获取数组中所有数字的平均值,但我需要将数组的内容更改为int。有什么想法可以将to_i方法放在哪里吗?ClassTerraindefinitializefile_name@input=IO.readlines(file_name)#readinfile@size=@input[0].to_i@land=[@size]x=1whilex 最佳答案 只需将数组映射为整数:@land边注如果你想得到一条线的平均值,你可以这样做:values=@input[x]

  6. ruby - 将散列转换为嵌套散列 - 2

    这道题是thisquestion的逆题.给定一个散列,每个键都有一个数组,例如{[:a,:b,:c]=>1,[:a,:b,:d]=>2,[:a,:e]=>3,[:f]=>4,}将其转换为嵌套哈希的最佳方法是什么{:a=>{:b=>{:c=>1,:d=>2},:e=>3,},:f=>4,} 最佳答案 这是一个迭代的解决方案,递归的解决方案留给读者作为练习:defconvert(h={})ret={}h.eachdo|k,v|node=retk[0..-2].each{|x|node[x]||={};node=node[x]}node[

  7. ruby-on-rails - 使用 Sublime Text 3 突出显示 HTML 背景语法中的 ERB? - 2

    所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择

  8. ruby-on-rails - link_to 不显示任何 rails - 2

    我试图在索引页中创建一个超链接,但它没有显示,也没有给出任何错误。这是我的index.html.erb代码。ListingarticlesTitleTextssss我检查了我的路线,我认为它们也没有问题。PrefixVerbURIPatternController#Actionwelcome_indexGET/welcome/index(.:format)welcome#indexarticlesGET/articles(.:format)articles#indexPOST/articles(.:format)articles#createnew_articleGET/article

  9. ruby-on-rails - 如何在 Rails View 上显示错误消息? - 2

    我是rails的新手,想在form字段上应用验证。myviewsnew.html.erb.....模拟.rbclassSimulation{:in=>1..25,:message=>'Therowmustbebetween1and25'}end模拟Controller.rbclassSimulationsController我想检查模型类中row字段的整数范围,如果不在范围内则返回错误信息。我可以检查上面代码的范围,但无法返回错误消息提前致谢 最佳答案 关键是您使用的是模型表单,一种显示ActiveRecord模型实例属性的表单。c

  10. ruby-on-rails - Ruby url 到 html 链接转换 - 2

    我正在使用Rails构建一个简单的聊天应用程序。当用户输入url时,我希望将其输出为html链接(即“url”)。我想知道在Ruby中是否有任何库或众所周知的方法可以做到这一点。如果没有,我有一些不错的正则表达式示例代码可以使用... 最佳答案 查看auto_linkRails提供的辅助方法。这会将所有URL和电子邮件地址变成可点击的链接(htmlanchor标记)。这是文档中的代码示例。auto_link("Gotohttp://www.rubyonrails.organdsayhellotodavid@loudthinking.

随机推荐