ros机器人之小乌龟仿真-路径记录
------------恢复内容开始------------
通过自己不断地摸索,对ros系统有了一定的了解,首先装系统,这一过程中也遇到了很多问题,但通过不断地尝试,经过一天一夜的倒腾,总算是把系统给安装好了,接下来配置环境,虽然这个过程比较艰辛,总是出现编译出错或者没有功能包依赖等各种问题。但是通过我们的努力,都一点一点的解决了,我会再接再厉,
1.首先运行个小乌龟例程:
打开一个终端:roscore #运行ros环境
打开一个终端:rosrun turtlesim turtlesim_node #运行小乌龟仿真器节点,打开小乌龟运行场景
打开一个终端:rosrun turtlesim turtle_teleop_key #运行键盘控制节点,通过方向键控制小乌龟的运动

2.通过话题给小乌龟发送消息让小乌龟定向运动
命令如下
qqtsj ~ rostopic pub /turtle1/cmd_vel geometry_msgs/Twist "linear:
x: 3.0
y: 0.0
z: 2.0
angular:
x: 0.0
y: 0.0
z: 0.0"
publishing and latching message. Press ctrl-C to terminate
可以定向的改变小乌龟的角速度和线速度以及小乌龟的转动角度,但是这样只能发送一次消息。
若需以一定的频率不断地发送消息数据,则为如下命令
qqtsj ~ rostopic pub -r 10 /turtle1/cmd_vel geometry_msgs/Twist "linear:
x: 2.0
y: 0.0
z: 2.0
angular:
x: 0.0
y: 0.0
z: 3.0"
其中-r为循环,10为发送给消息的频率(单位为hz),然后小乌龟就会根据规定的速度和角度定向的运动,这就用到了ROS系统中的话题通信,以便后面研究机器人打下基础。
查看消息的结构:rosmsg show geometry/Twlist
服务:service
查看服务的列表(服务的内容):rosservice list
qqtsj ~ rosservice list
/clear
/kill
/reset
/rosout/get_loggers
/rosout/set_logger_level
/rostopic_26871_1579011097016/get_loggers
/rostopic_26871_1579011097016/set_logger_level
/spawn
/teleop_turtle/get_loggers
/teleop_turtle/set_logger_level
/turtle1/set_pen
/turtle1/teleport_absolute
/turtle1/teleport_relative
/turtlesim/get_loggers
/turtlesim/set_logger_level
建立一个新的海龟:rosservice call /spawn (Tab键两下)
qqtsj ~ rosservice call /spawn "x: 0.0
y: 0.0
theta: 0.0
name: 'turtle2'"
name: "turtle2"
路径记录
首先创建一个bag包,存放小乌龟运行的路径,记录下小乌龟的行进路线。命令为
qqtsj ~ rosbag record -a -O cmd_record
[ INFO] [1579021261.961366553]: Recording to cmd_record.bag.
[ INFO] [1579021261.962496904]: Subscribing to /turtle1/color_sensor
[ INFO] [1579021261.964809471]: Subscribing to /turtle2/color_sensor
[ INFO] [1579021261.966782329]: Subscribing to /rosout
[ INFO] [1579021261.968599482]: Subscribing to /turtle2/pose
[ INFO] [1579021261.970367259]: Subscribing to /rosout_agg
[ INFO] [1579021261.972389384]: Subscribing to /turtle1/cmd_vel
[ INFO] [1579021261.975169187]: Subscribing to /turtle1/pose
路径重现
在bag包中已经记录了小乌龟的路径,然后通过调用bag包去实现小乌龟路径的重现,小乌龟会按照记录的路径重新运动,如下
qqtsj ~ rosbag play cmd_record.bag
[ INFO] [1579021485.400287473]: Opening cmd_record.bag Waiting 0.2 seconds after advertising topics... done. Hit space to toggle paused, or 's' to step.
[RUNNING] Bag Time: 1579021261.977381 Duration: 0.000000 / [RUNNING] Bag Time: 1579021261.978402 Duration: 0.001021 / [RUNNING] Bag Time: 1579021262.078691 Duration: 0.101311 / [RUNNING] Bag Time: 1579021262.177369 Duration: 0.199988 / [RUNNING] Bag Time: 1579021262.185319 Duration: 0.207938 / [RUNNING] Bag Time: 1579021262.201285 Duration: 0.223904 / [RUNNING] Bag Time: 1579021262.217652 Duration: 0.240271 / [RUNNING] Bag Time: 1579021262.233162 Duration: 0.255782 / [RUNNING] Bag Time: 1579021262.249374 Duration: 0.271993 / [RUNNING] Bag Time: 1579021262.266055 Duration: 0.288674 / [RUNNING] Bag Time: 1579021262.281470 Duration: 0.304090 /
通过对小乌龟的控制,定向移动,路径记录,路径重现。对接下来ros机器人的研究有一定的帮助,会加深我们对机器人的理解。
ros机器人之小乌龟仿真-路径记录的更多相关文章
- ROS机器人操作系统相关书籍、资料和学习路径
作者:Top Liu链接:https://zhuanlan.zhihu.com/p/30391098来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 本文是易科机器人实验 ...
- ROS机器人程序设计(原书第2版)补充资料 (柒) 第七章 3D建模与仿真 urdf Gazebo V-Rep Webots Morse
ROS机器人程序设计(原书第2版)补充资料 (柒) 第七章 3D建模与仿真 urdf Gazebo V-Rep Webots Morse 书中,大部分出现hydro的地方,直接替换为indigo或ja ...
- ROS机器人路径规划介绍--全局规划
ROS机器人路径规划算法主要包括2个部分:1)全局路径规划算法:2)局部路径规划算法: 一.全局路径规划 global planner ROS 的navigation官方功能包提供了三种全局路径规划器 ...
- ROS机器人程序设计(原书第2版)补充资料 教学大纲
ROS机器人程序设计(原书第2版) 补充资料 教学大纲 针对该书稍后会补充教学大纲.教案.多媒体课件以及练习题等. <ROS机器人程序设计>课程简介 课程编号:XXXXXX 课程名称:RO ...
- ROSCon 2016视频和幻灯片发布 ROS机器人操作系统重要参考资料
ROSCon 2016视频和幻灯片发布 By Tully Foote on 十月19,2016 7:28 AM 全部PPT下载地址:http://pan.baidu.com/s/1gf2sn2F RO ...
- ROS机器人程序设计-学习小结-
ROS官网 |易科 |虞坤林 |古月居 |ROSClub 学习ROS相关书籍推荐:http://blog.csdn.net/zhangrelay/article/details/52244746 RO ...
- ros机器人开发概述
1. ROS项目开发流程? 参照古月大神写的ROS探索总结系列:http://blog.exbot.net/archives/619 具体项目设计可看看<程序员>杂志的最新一篇 ...
- ROS机器人程序设计(原书第2版)补充资料 (玖) 第九章 导航功能包集进阶 navigation
ROS机器人程序设计(原书第2版)补充资料 (玖) 第九章 导航功能包集进阶 navigation 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中 ...
- ROS机器人程序设计(原书第2版)补充资料 (零) 源代码、资料和印刷错误修订等 2017年01月01日更新
ROS机器人程序设计(原书第2版)补充资料 (零) 源代码等 ROS官网 版)部分内容修订 页:第1行,删去$ 页:第6行,float64 y 前面加一个空格 页:中间创建主题:下面程序不用换行,(& ...
随机推荐
- ELK日志分析系统搭建
之前一段时间由于版本迭代任务紧,组内代码质量不尽如人意.接二连三的被测试提醒后台错误之后, 我们决定搭建一个后台日志分析系统, 经过几个方案比较后,选择的相对更简单的ELK方案. ELK 是Elast ...
- 假设检验的Python实现
结合假设检验的理论知识,本文使用Python对实际数据进行假设检验. 导入测试数据 从线上下载测试数据文件,数据链接:https://pan.baidu.com/s/1t4SKF6U2yyjT365F ...
- VLC播放器的快捷键(shutcut)
ubuntu上的视频播放器功能简陋,不支持快慢速,于是需要一款播放器来替代它,从网上找了找,大家对VLC的评价出奇的一致, 于是试水了一下,发现功能确实强大,支持大多数多媒体文件以及各类流媒体协议 在 ...
- OpenGLES思维导图
两本书到头来就只剩下了这三张图了吧.想要原图:https://github.com/wangwangla/biji/blob/master/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8 ...
- matplotlib 散点图
一.特点 离散的数据,查看分布规律,走向趋势 二.使用 1.核心 plt.scatter(x, y) # x为x轴的数据,可迭代对象,必须是数字 # y为y轴的数据,可迭代对象,必须是数字 # x和y ...
- ORM批量添加
# ########### Book是模型类 ############ 建一个空列表,盛放obj对象lst_obj=[]# 用for循环控制添加信息条数for i in range(100):# 创建 ...
- 美食家App开发日记5
今天将ListView控件用更强大的Recyclerview控件取代,最后调试了程序. 感觉Android编程难度实在是远远高于javaweb,初次接触,感觉有很多东西想实现,想得很容易,但是实现起来 ...
- 关于Spring集成Quartz的concurrent属性
关于Spring集成Quartz的concurrent属性 以前经常在任务调度程序中使用Spring集成的Quartz,这种方式可以用简单的声明式配置即可实现定时任务,并结合了Spring自身的Bea ...
- 20200104模拟赛 问题C 上台拿衣服
题目 分析: 乍一看不就是从楼上扔鸡蛋那道题吗... 然后开始写写写... 设f [ i ] [ j ]表示 i 个记者膜 j 次可以验证多少层楼... 于是开始递推: 我们选取第 i 个记者去尝试其 ...
- selenium常见的元素定位方法
一.获取元素 1)通过谷歌浏览器自动的工具访问百度首页,我们可以看到,页面上的元素都是由一行行的代码组成的,它们之间有层级地组织起来,每个元素之间都有不同的标签和值,我们可以通过这些不同的标签和值来找 ...