ROS-使用命令发布导航目标点(publish point)

手动发布rviz中的publish point

我在利用move—base跑仿真时,是使用的rviz中的publish point按钮,在加载的地图上点一系列的目标点,让仿真车辆按照我点的轨迹去跑;在实车的情况下,如果每一次都靠手动去在rviz中创建目标点的话,我感觉实车的运行轨迹不够精确,所以想创建文件或者是在终端使用命令去发送这些点来代替手动在rviz中的创建的点。

思路方法

方法一:
因为实车搭载了Gps,首先想到的就是先使用遥控让车辆跑一下路线,记录下gps的信息,让实车回到开始位置,将gps信号转为map上的点发送给move—base。
方法二:
方法一的简化,还是利用rviz中的publish point按钮直接在地图点击一系列的点,但是要记录下点的信息,然后让实车回到初始位置去发布这些点。

实现

按照由易到难的原则,先把方法二的功能实现出来,再进一步进行优化!!

publish point的发布的话题“/clicked_point”

rostopic info /clicked_point

Type: geometry_msgs/PointStamped
Publishers: 
 * /rviz (http://zero:37475/)
Subscribers: 
 * /car/move_base (http://zero:37663/)

发现了个有趣的现象,在rviz中手动点击publish point的时,当加载的两个publish point之间距离比较小时,move_base会发布“/move_base/goal”话题,那么问题就简单了,我只需要在终端向“/cliceke_point”话题发布两个 publish point,且这两点的位置相近即可,随后move_base包会自动发布“/move_base/goal”话题,模型开始移动!!

发布“/clicked_point”内容

rostopic pub /clicked_point geometry_msgs/PointStamped \ '{header: {frame_id: "map"},point: {x: 7.79252910614,y: -0.434817790985,z: 0.00178050994873}}'

rostopic pub /clicked_point geometry_msgs/PointStamped \ '{header: {frame_id: "map"},point: {x: 8.09252910614,y: -0.434817790985,z: 0.00178050994873}}'

ok!!成功的让它跑起来了!!
在这里插入图片描述

使用脚本发布一系列的点

#!/bin/sh
rostopic pub -1 /clicked_point geometry_msgs/PointStamped "header:
  seq: 0
  stamp:
    secs: 0
    nsecs: 0
  frame_id: 'map'
point:
  x: -5.0
  y: 0.0 
  z: 0.0" 
r
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值