理清ROS通信的一些细节

目标:掌握ros的python编程
基本教程:https://www.bilibili.com/video/BV1sU4y1z7mw/?spm_id_from=333.788&vd_source=32148098d54c83926572ec0bab6a3b1d

terminator

快捷键需要自己去重新启用
ctrl+shift+e 横向分屏
ctrl+shift+o 纵向分屏
ctrl+shift+w 取消分屏
去除占用

阿杰的ws的使用

git clone https://github.com/6-robot/wpr_simulation.git
在script中:
./install_for_noetic.sh
(注意学习怎么写sh脚本快速执行指令了)
source——载入工作空间的环境设置
roslaunch wpr_simulation wpb_simple.launch
rosrun rqt_robot_steering rqt_robot_steering # 速度控制

第二个功能包:
git clone https://github.com/ros/ros_tutorials.git
###怎么指定编译一个功能包 ###catkin_make -DCATKIN_WHITELIST_PACKAGES=“package1;package2”

roscore
rosrun turtlesim turtlesim_node
修改了源码后打开rosrun发生了变化,说明是确实对应的

roscore
rosrun ssr_pkg chao_node

写第一个cpp源程序和ros通信的节点程序

显示有乱码:
rostopic echo 话题名称

录制数据msg:

rosbag record /topic_name 录制话题
rosbag info 查看话题名称、类型、消息数量
rosbag play name.bag 回放数据包

rqt显示工具:
rosrun rqt_tf_tree rqt_tf_tree
rosrun rqt_graph rqt_graph
rosrun rqt_plot rqt_plot
rosrun rqt_topic rqt_topic # 这个不错,监控话题及数据

不好用rosrun
直接拿出工具来用:
查看话题类型:
rostopic type /话题
rosmsg show 话题类型 #比如说geometry_msgs/Twist:
这样:
geometry_msgs/Vector3 linear
float64 x
float64 y
float64 z
geometry_msgs/Vector3 angular
float64 x
float64 y
float64 z

rqt_plot /话题/X # x是消息

echo -e 复制一下消息(注意带"")

python实现节点消息发布和订阅:

rosrun ssr_pkg chao_node.py

自定义消息类型:

add_message_files(
FILES
Carry.msg
)

generate_messages(
DEPENDENCIES
std_msgs
)

CATKIN_DEPENDS message_generation message_runtime roscpp rospy std_msgs

修改package.xml:
只需要加上 <build_depend>message_runtime</build_depend> <exec_depend>message_generation</exec_depend>
即可

<buildtool_depend>catkin</buildtool_depend>
<build_depend>message_generation</build_depend>
<build_depend>message_runtime</build_depend>
<build_depend>roscpp</build_depend>
<build_depend>rospy</build_depend>
<build_depend>std_msgs</build_depend>
<build_export_depend>roscpp</build_export_depend>
<build_export_depend>rospy</build_export_depend>
<build_export_depend>std_msgs</build_export_depend>
<exec_depend>message_runtime</exec_depend>
<exec_depend>message_generation</exec_depend>
<exec_depend>roscpp</exec_depend>
<exec_depend>rospy</exec_depend>
<exec_depend>std_msgs</exec_depend>

总结一下,重点的内容是:catkin_make -DCATKIN_WHITELIST_PACKAGES="package1;package2"rostopic echo 话题名称
rostopic type /话题如果打印出来的话数据有乱码,那就复制一下,然后echo -e 复制一下消息(注意带"")录制数据msg:
rosbag record /topic_name    录制话题
rosbag info 查看话题名称、类型、消息数量
rosbag play name.bag 回放数据包rqt显示工具:
rosrun rqt_tf_tree rqt_tf_tree
rosrun rqt_graph rqt_graph
rosrun rqt_plot rqt_plot
rosrun rqt_topic rqt_topic   # 这个不错,监控话题及数据注意,基本没有必要输入这么一大串,只需要:
rqt_tf_tree
rqt_graph
rqt_plot
rqt_topic

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/21329.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C基础day7(2023.7.7)

一、Xmind整理&#xff1a; 二、课上练习&#xff1a; 练习1&#xff1a;二维数组地址 int main(int argc, const char *argv[]) {int arr[2][3]{11,22,33,44,55,66};for(int i0;i<2;i){for(int j0;j<3;j){printf("arr[%d][%d]%p\n",i,j,&arr[i][j]);}}…

七大排序算法——归并排序,通俗易懂的思路讲解与图解(完整Java代码)

文章目录 一、排序的概念排序的概念排序的稳定性七大排序算法 二、归并排序核心思想代码实现 三、性能分析四、七大排序算法性能对比 一、排序的概念 排序的概念 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0…

NTLM协议

0x01 LM Hash加密算法 LM Hash本质是一个DES加密&#xff0c;从Windows Vista和Windows Server 2008开始就禁用了LM Hash。LM Hash明文密码被限定在14位以内&#xff0c;密码超过14位则会停止使用LM Hash。下面介绍一下LM Hash的加密流程&#xff0c;以Pss1234为例&#xff1a…

FFMPEG 编译流程(极客版)

前言 依葫芦画瓢 全程30分钟从零完成ffmpeg编译&#xff0c;主打的就是一个极客 编译环境 OS 要求&#xff1a;Ubuntu 20.04 LTS VMware新建虚拟机 NDK 要求&#xff1a;android-ndk-r20b FFmpeg 功能模块&#xff1a; libavformat:多媒体文件或协议的封装和解封装库&a…

计算机基础--->数据结构(9)【并查集】

文章目录 并查集的概述并查集的主要用途并查集的实现创建和初始化集合查找当前元素的集合根节点判断两个元素是否处于同一集合合并两个集合对节点的路径进行压缩 并查集的概述 并查集是一种用于解决集合合并和查询问题的数据结构&#xff0c;主要用于实现有关集合的操作&#x…

IDEA 配置 openjdk,jre

使用 idea 配置 zip 版本的 openjdk 和 jre&#xff0c;我使用的时 redhat 提供的 jdk 和 jre。 一、下载 idea、jdk 和 jre 红帽下载地址为&#xff1a; jdk 和 jre 安装地址根据个人配置&#xff0c;我的配置如下&#xff1a; 下划线的分别为我的 jdk 和 jre 保存路径 二…

【力扣刷题 | 第十八天】

目录 前言&#xff1a; 1005. K 次取反后最大化的数组和 - 力扣&#xff08;LeetCode&#xff09; 134. 加油站 - 力扣&#xff08;LeetCode&#xff09; 总结&#xff1a; 前言&#xff1a; 今天随机刷题&#xff0c;不对题型做具体的要求 1005. K 次取反后最大化的数组和 …

【2023,学点儿新Java-33】字符型变量char | 布尔类型变量 boolean:true、false

前情提要&#xff1a; 【2023&#xff0c;学点儿新Java-32】Java基础小练习&#xff1a;根据圆周率与半径求圆的面积 | 温度转换 | 计算矩形面积 | 判断奇偶数 | 年龄分类【2023&#xff0c;学点儿新Java-31】测试&#xff1a;整型和浮点型变量的使用 | 附&#xff1a;计算机存…

2.zabbxi操作和设置

文章目录 zabbxi操作和设置添加zabbix-agent客户端web端添加客户端 自定义监控模板&#xff08;面试&#xff09;监控模板下载地址案例1案例2 设置邮件报警自动注册和自动发现自动发现&#xff08;对于agent是被动模式&#xff09;自动注册&#xff08;对于agent是主动模式&…

PROFINET转TCP/IP网关TCP/IP协议的含义是

大家好&#xff0c;今天要和大家分享一款自主研发的通讯网关&#xff0c;远创智控YC-PN-TCPIP。这款网关可是集多种功能于一身&#xff0c;PROFINET从站功能&#xff0c;让它在通讯领域独领风骚。想知道这款网关如何实现PROFINET和TCP/IP网络的连接吗&#xff1f;一起来看看吧&…

虚拟化容器化与docker

虚拟化容器化与docker 基本概念虚拟化分类虚拟化实现主机虚拟化实现容器虚拟化实现命名空间namespace空间隔离 控制组群cgroup资源隔离 LXC(Linux Container) docker与虚拟机 基本概念 物理机&#xff1a; 实际的服务器或者计算机。相对于虚拟机而言的对实体计算机的称呼。物理…

DSP开发软件css(10)使用基础(汉化、工程导入、设置目标配置文件、选择仿真器和芯片型号、添加文件|库路径、编译下载等操作)

DSP开发软件css(10)使用基础(汉化、工程导入、设置目标配置文件、选择仿真器和芯片型号、添加文件|库路径、编译下载等操作&#xff09; 文章目录 DSP开发软件css(10)使用基础(汉化、工程导入、设置目标配置文件、选择仿真器和芯片型号、添加文件|库路径、编译下载等操作&#…