美文网首页
那些踩过的ROS的坑

那些踩过的ROS的坑

作者: marine0131 | 来源:发表于2017-08-01 14:34 被阅读0次

好大的坑,速度不稳定,一抖一抖的

上层与底层通讯的实时性要保证,两者之间的交互的数据是v和w,左右轮的速度的计算都放在下层,并保证底层计数odom和计算v和w的实时性和准确性。这些是基础,非常重要。

20170705超声不避障,xml文件格式好坑爹

加速DLu的sonar层之后,发现根本没有避障。后来发现在local_costmap.yaml,global_costmap.yaml,common_costmap.yaml中obstacle layer,inflation layer,sonar layer都要在第二层,而不是第一层顶格。

顶格的只有第一行的local_costmap等,意思就是这些层都是属于local_costmap或者global_costmap的,注意local和global文件都要进行相应的配置。

20170712超声避障太差,排布要注意

原来是这样子排布的,正前方有一个空隙无法检测到障碍,那么机器人会认为这里可以走,所以就不进行避障,直接撞上去。


image.png

后来改成这样,就好一点

image.png

20170713远程遥控

按照教程(ROS wiki中有个Remote monitoring and control),把教程中的要求写进了~/.bashrc,ssh登录到机器人端,然后开启launch,没有什么用?也不动

一定要按照教程在终端写入才能用,简直坑爹。
rocon_remocon这是人家写好的远程操作界面
机器人本体端安装indigo-rocon-remocon ros_bridge, 手机端安装EAI的app,机器人端开启相应的launch,手机端设置好相应的端口,那么就可以用手机控制机器人了。

20170714用python写node

不用像c++那样在cmakelist.txt中添加任何代码
但是关键的是要授权可执行 chmod +x ./scripts/node.py

20170714自定义msg的坑

定义好msg之后对cmakelist和package.xml进行相应的修改,这些网上都有,照着来
然后catkin_make
用时

from package.msg import msg_name

TM from的居然是package.msg, import才是定义的消息的文件名,特么有病

另外recv或许还有一个比较容易曲解的地方recv(maxsize)并不是阻塞到直到获取到maxsize长度后才返回。这个地方可以这样理解,把这个IO流当做一个盒子。当盒子里面没有内容的时候recv是阻塞的。某一时刻盒子里面放进了一些内容,不管放进了多少recv会读取最多maxsize内容返回。

201708087

想用map_server map_saver [-f name]将图片保存为jpg格式
map_saver只将图片保存为.pgm格式,我看了源码

image.png

直接给后缀'.pgm',所以除非改源码,不然无法保存jpg图片

20170808

远程设置参数
roslibjs可以远程设置参数,比如将这个字符串设置到如下object

image.png

但是设置完参数,远程如何获取呢
因为如果没有参数,那么ROS端的node必然运行不起来,所以:

  1. 必须先设置参数
  2. 再运行node
  3. 如果要在运行过程中实时改变参数,那么就要设置rqt_reconfigure了

ROS端的参数有不同的分类:

global_name = rospy.get_param("/global_name")
relative_name = rospy.get_param("relative_name")
private_param = rospy.get_param('~private_name')    
default_param = rospy.get_param('default_param', 'default_value')

# fetch a group (dictionary) of parameters
gains = rospy.get_param('gains')
p, i, d = gains['P'], gains['I'], gains['D']

便面上看,第一行是global参数,这种参数可以在node启动之前先在远程设置,启动node之后,node就能够获取到这个参数。
第二行的相对参数用法不知
第三行的私有参数是用的最多的,这种参数只能在启动node时设置或者在launch文件中设置,无法在node启动前先设置,node启动再去获取。

相关文章

  • 那些踩过的ROS的坑

    好大的坑,速度不稳定,一抖一抖的 上层与底层通讯的实时性要保证,两者之间的交互的数据是v和w,左右轮的速度的计算都...

  • 那些年,英国留学的学长学姐替你踩过的坑

    那些年,你的前辈们踩过的坑,千万记得要避过去啊! 前人栽树,后人乘凉。想必一谈起英国留学时踩过的那些坑,很多人都能...

  • 那些年所踩过的那些坑

    2015年的硝烟散去的那场股灾 笑来老师打过一个形象的比喻,如果不懂市场,却又要去投,无异于打着个火把经过火药库而...

  • 像MIUI一样做Zabbix二次开发(5)——那些坑和优化方向

    踩过的那些坑 从2011年开始玩Zabbix,踩过的坑着实不少,被研发的同事吐了无数槽,所谓“情到深度又爱又恨“。...

  • 减肥踩过的那些坑

    时间过得很快,也很慢,关键看你在什么状态…… 从3月18号开启减肥模式,说实在的刚开始,很煎熬挑战食欲,战胜自己的...

  • 那些年踩过的坑

    1.iphone手机,input元素readonly仍获取了焦点. 解决办法:直接在dom节点添加内联事件onfo...

  • 爬虫踩过的那些坑

    在建模分析的过程中,数据的获取总是第一步,小公司不像大厂那样有专门的爬虫工程师,除了公司的数据积累,很多时候需要自...

  • 那些年踩过的坑

    RecyclerView的IndexOutOfBoundsException异常 大半年没有敲代码了,顺手写个上拉...

  • ReactNative:踩过的那些坑

    1.this.setState is not a function 问题分析 this.setState is n...

  • GreenDAO踩过的那些坑

    GreenDao据说是效率最高的orm框架,这次公司项目需要,想起来就用了,没想到一连踩了两个坑,加班加点,活了一...

网友评论

      本文标题:那些踩过的ROS的坑

      本文链接:https://www.haomeiwen.com/subject/jzzihxtx.html