• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

智能车仿真 —— 2020室外光电创意组线上仿真赛(三)

人工智能 布剪刀石头 2342次浏览 0个评论

前言

系列教程一:仿真赛教程一 系列教程二:仿真赛教程二 相关教程:mit_racecar仿真教程 github项目地址:点个star呗,比完赛更新代码

base_footprint发布出错问题解决方案

这个问题的根本原因是官方车模和mit的车模的基准名字不同,mit_racecar是base_link而官方车模是base_footprint,那么聪明的你还没想到最最最简单的解决办法吗……修改官方车模的基准为base_link呗,规则说了不准该传感器,车的驱动参数等,我改个关节名字总可以吧,我这也是为了配置方便呢.作为参考我将banse_footprint改成了base_link,把base_link改成了base,相关的报错全解决了.

关于odom到base_link的连接

很多同学的amcl配置好了,但是发现amcl连接的是/map和/odom,那这样tf树上/odom和/base_link间还是没有连接起来,这里举例一个同学的图片:
智能车仿真 —— 2020室外光电创意组线上仿真赛(三) 这个问题其实挺呆呆的,我用的mit的odom发布的脚本里面写的是/map和/base_link的连接,现在你/map已经和/odom连接上了,那不就把脚本里的/map换成/odom么,这样就完成了/map -> /odom -> /base_link的连接了不是?

关于gazebo的坐标不可用怎么办

上面一条的关于,其实没啥用的,因为那个脚本gazebo_odometry.py是真的真的从gazebo中拿的坐标,比赛不让用的,那我们捋一下思路,/map到/odom是amcl已经连接的,剩下的不就是把/odom和/base_link连接起来吗?这个其实也有参考……去年比赛的车模不是实体车吗???实体车不能从gazebo中拿到位置那它是怎么定位的呢?所以去翻翻吧,去年的车模用的是激光加陀螺仪融合的里程计.

关于amcl配置

这个可以参考去年的车代码也可以网上随便搜搜都有的,其实就是启动一个amcl节点就好了(下面是默认配置):

<node pkg="amcl" type="amcl" name="amcl" output="screen">
<!-- Publish scans from best pose at a max of 10 Hz -->
<param name="odom_model_type" value="diff"/>
<param name="odom_alpha5" value="0.1"/>
<param name="transform_tolerance" value="0.2" />
<param name="gui_publish_rate" value="10.0"/>
<param name="laser_max_beams" value="30"/>
<param name="min_particles" value="500"/>
<param name="max_particles" value="5000"/>
<param name="kld_err" value="0.05"/>
<param name="kld_z" value="0.99"/>
<param name="odom_alpha1" value="0.2"/>
<param name="odom_alpha2" value="0.2"/>
<!-- translation std dev, m -->
<param name="odom_alpha3" value="0.8"/>
<param name="odom_alpha4" value="0.2"/>
<param name="laser_z_hit" value="0.5"/>
<param name="laser_z_short" value="0.05"/>
<param name="laser_z_max" value="0.05"/>
<param name="laser_z_rand" value="0.5"/>
<param name="laser_sigma_hit" value="0.2"/>
<param name="laser_lambda_short" value="0.1"/>
<param name="laser_lambda_short" value="0.1"/>
<param name="laser_model_type" value="likelihood_field"/>
<!-- <param name="laser_model_type" value="beam"/> -->
<param name="laser_likelihood_max_dist" value="2.0"/>
<param name="update_min_d" value="0.2"/>
<param name="update_min_a" value="0.5"/>
<param name="odom_frame_id" value="/odom"/>
<param name="resample_interval" value="1"/>
<param name="transform_tolerance" value="0.1"/>
<param name="recovery_alpha_slow" value="0.0"/>
<param name="recovery_alpha_fast" value="0.0"/>
</node>

阿克曼消息转换

这个很简单写一个脚本订阅cmd_vel话题,然后将里面的数赋值到阿克曼消息里就行了,十几行代码的事,学会ros这个算是基本功哦~

比赛加油~更多问题欢迎在古月居的论坛智能车仿真竞赛专栏提问,可能有古月老师亲自解答.


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明智能车仿真 —— 2020室外光电创意组线上仿真赛(三)
喜欢 (0)

您必须 登录 才能发表评论!

加载中……