ROS 位置姿态Odometry仿真模拟(gmapping)

使用单纯的雷达数据进行 2D 建立图像的时候,建图的效果和雷达的性能也有关系,雷达的扫描频率会随着小车的移动速度增大而变化,通过更改扫描的频率来更新栅格地图的完整性。


点击DEMO-LINK

在这里插入图片描述


所需要的环境

ubuntu 18.04 + ROS Melodic desktop full #ROS 别的可运行版本也可以

主要文件夹

mini_sim18_ws 这个文件夹是主要的工作空间,通过 roslaunch 执行 launch 文件去观察和控制 demo
original_neor_mini 这个文件夹是一个原始的 neor _ mini urdf 文件,你可以自己构建
pictures 全过程图片

下载编译
# 打开一个终端
git clone https://github.com/COONEO/neor_mini.git
cd neor_mini/mini_sim18_ws
rosdep install --from-paths src --ignore-src -r -y     # 需要一定时间

# 编译空间
catkin_make                              # 如果失败了请重复

如果出现依赖错误的的话,类似于下面的情况
在这里插入图片描述
去文件夹里面将一下两个文件夹删除
在这里插入图片描述

然后重新编译
得到的编译结果会生成可执行文件(包含各个功能包的编译文件)
在这里插入图片描述

总共有五个功能包

neor_mini # 用 urdf 文件存储 neor mini 外观的说明
steer_drive_ros # 运动学 ROS 插件
steer_mini_gazebo # 存储发射文件的新近迷你模型可视化在露台
mini_gmapping # 存储启动文件和 gmap params 文件
mini_navigation # 存储启动文件和导航参数文件

执行 Demo
查看demo小车模型 Rviz
cd ~/neor_mini/mini_sim18_ws
source devel/setup.bash
roslaunch neor_mini display.launch

在这里插入图片描述
可以通过更改滑动条更改模型的脚点链接位置


查看仿真雷达模型 urdf
cd ~/neor_mini/mini_sim18_ws
source devel/setup.bash
roslaunch neor_mini display_gazebo_sensors.launch

在这里插入图片描述
同样也可以可以通过更改滑动条更改模型的脚点链接位置


gazebo 仿真 demo 测试
cd ~/neor_mini/mini_sim18_ws
source devel/setup.bash
roslaunch steer_mini_gazebo steer_mini_sim_sensors.launch

在这里插入图片描述
通过使用小窗口上的速度和方向控制小车,控制小车的运行轨迹


使用 neor_mini urdf 进行 Gmapping建图
cd ~/neor_mini/mini_sim18_ws
source devel/setup.bash
roslaunch mini_gmapping gmapping_steer_mini_sensors.launch

在这里插入图片描述
同样也是可以通过控制小窗上的键位来控制小车运动的位置


rf20_laser_odometry ROS 包可调参数

上述仓库的 demo 用来验证(根据相邻的雷达数据帧推算出本体的2D姿态数据,结合周围的测距数据,构建对应的栅格地图)。

  • 订阅

scan (sensor_msgs/LaserScan) # 定于的雷达话题数据
tf (tf/tfMessage)         # 静态的 tf 变换

  • 发布

odom (nav_msgs/Odometry)   # 估计的里程计话题数据输出
tf (tf/tfMessage)         # 发布的odom坐标系和base_link坐标系之间的tf变换

同样的可以通过更改仿真中的扫描频率来降低性能和适用的范围

neor_mini/mini_sim18_ws/src/neor_mini/urdf
修改


![在这里插入图片描述](https://img-blog.csdnimg.cn/a26988a13d5946ab8c25913c8297b32e.png)

<!------------------- 修改部分 ----------------------->
<gazebo reference="laser_link">
  <sensor type="ray" name="Top_laser_sensor">
    <visualize>false</visualize>   <!-- visual or unvisual laser ray :true or false-->
    <update_rate>40</update_rate> <!-- 默认是 40,修改为 5 Hz -->
...
</gazebo>
<!---------------------------------------------------->
里程计的描述消息
# rf2o_laser_odometry 激光里程计节点配置 
<node pkg="rf2o_laser_odometry" type="rf2o_laser_odometry_node" name="rf2o_laser_odometry" >
  <param name="laser_scan_topic" value="/scan"/>   # topic where the lidar scans are being published
  <param name="odom_topic" value="/odom" />        # topic where tu publish the odometry estimations
  <param name="publish_tf" value="true" />         # wheter or not to publish the tf::transform (base->odom)
  <param name="base_frame_id" value="/base_link"/> # frame_id (tf) of the mobile robot base. A tf transform from the laser_frame to the base_frame is mandatory
  <param name="odom_frame_id" value="/odom" />     # frame_id (tf) to publish the odometry estimations    
  <param name="init_pose_from_topic" value="" />   # (Odom topic) Leave empty to start at point (0,0)
  <param name="freq" value="5.0"/>                 # Execution frequency.
  <param name="verbose" value="true" />            
</node>
脚本运行

根据上述描述完里程计之后,可以使用 gmapping 来建图,然后运行脚本

roslaunch mini_gmapping laser_odom_gmapping.launch


仓库示例中还有很多可以调用
例如:
雷达点云3D 建图
在这里插入图片描述
Updating…


🌸🌸🌸完结撒花🌸🌸🌸


🌈🌈@Redamancy🌈🌈


  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值