【ROS工具】ROS基础学习

2023-10-27

1、基本介绍

ROS(Robot Operating System)是一个机器人操作系统,开始于2007,三个中长期支持版本,对应着Ubuntu的三个LTS版本如下:
在这里插入图片描述
ROS术语

  • 主节点:ros master,对各节点进行连接
  • 节点:在ROS中运行的最小处理器单元。
  • 功能包:ROS的基本单元,ROS以功能包为单位进行开发元
  • 功能包:具有共一目标的功能的集合
  • 消息:即节点之间传输的数据都成为消息
  • 话题:订阅者和发布者之间用话题进行消息的传输,通过向主节点注册相同的话题,达到发布者和订阅者对改话题的传输
  • 服务:是服务客户端和服务器之间的同步双向消息的通讯,有 requist 和 respon
  • 动作:是在需要像服务那样的双向请求的情况下使用的消息通信方式,是动作客户端和动作服务器之间的通讯,有 goal、respon 和 feedback。
  • 参数:节点使用的参数。

基础指令
1、查看相关文件或安装包的路径使用rospack指令:rospack find [package_name],如 rospack find roscpp;
2、使用roscd指令,直接跳转到相应的路径中:
$ roscd [locationname[/subdir]]
$ pwd 如:roscd roscpp; pwd
$ roscd log 指令的使用:跳转到log 如果ros在运行某个节点的话,就会打印相应的log,如果没有运行ros的任何一个程序,则提示No active roscore
3、rosls指令的使用,查看相应的文件下有什么文件,如:rosls roscpp_tutorials

2、实际操作

1 .创建catkin_ws工作空间

  • 在想要放置的目录下打开终端,输入
    $mkdir -p catkin_ws/rcs;
    (-p是为了当没有上层目录时自动逐层创建,如假设没有catkin_ws目录就会自动创建改目录,如有则不创建)
  • 在~/catkin_ws/src目录下初始化工作空间:
    $catkin_init_workspace
  • 在~/catkin_ws/目录下catkin_make一下:
    $catkin_make
  • 设置环境变量:
    $source devel/setup.bash 或者 vi ~/.bashrc中增加 source ~/catkin_ws/devel/setup.bash(前者设置环境变量需要每次都运行改指令;后者只要在bashrc文件中添加一次,以后就可以不用再添加)
  • 检查环境变量:$echo $ROS_PACKAGE_PATH

2. 创建发布者Publisher节点功能包

  • 创建功能包文件夹:$ catkin_create_pkg [自定义功能报名字] [功能包义来功能包,如roscpp、rospy、std_msgs、geometry_msgs、turtlesim等],如
    $ catkin_create_pkg learning_topic roscpp rospy std_msgs geometry_msgs turtlesim
  • 在相应功能包的src文件夹中新建编写发布者Publisher节点文件,如下velocity_publisher.cpp文件:
    “velocity_publisher.cpp”
*
* 该例程将发布turtle1/cmd_vel话题,消息类型是 geometry_msgs::Twist
*/
#include<ros/ros.h>
#include<geometry_msgs/Twist.h>


int main(int argc, char **argv)
{
   
    //初始化节点
    ros::init(argv,argv,"velocity_publisher");

    //创建节点句柄
    ros::NodeHandle n;

    //创建一个Publisher,发布名为 turtle1/cmd_vel的topic,消息类型为geometry_msgs::Twist,消息队列长度为10
    ros::
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【ROS工具】ROS基础学习 的相关文章

  • 【华为OD机试真题 python】直角三角形【2023 Q1

    题目描述 直角三角形 有N条线段 长度分别为a 1 a n 现要求你计算这N条线段最多可以组合成几个直角三角形 每条线段只能使用一次 每个三角形包含三条线段 输入描述 第一行输入一个正整数T 1 lt T lt 100 表示有T组测试数据

随机推荐

  • OPC UA协议报文,基础介绍+Hello报文解析

    消息主要分为 消息头和附加字段 通讯过程 协议标准第一部分进行总体介绍 协议标准第四部分有详细介绍通讯过程 流程介绍 整体流程 连接套接字 Hello 打开安全信道 创建会话 关闭安全信道 关闭套接字 订阅等事件 服务器审核行为 聚合的服务
  • qq文件对方接收后一定会有提示吗_QQ或将推出已读功能,以后假装看不见就要出事啊!大家怎么看?...

    大家都知道在平时我们经常会主动屏蔽或者无视一些消息 尤其是在工作的时候 面对超出自己的工作范畴我们会假装无视 但是近来QQ欲将推出已读功能 QQ的理由是 一旦消息被接受 按照人际交往的规则 是需要反馈的 不反馈是让对方很不舒服的 接着这个消
  • RMS,RMSE,标准差

    几个容易混淆的量 分别为 RMS 均方根值 Mean squared error RMSE 均方根误差 Root mean squared error Standard Deviation 标准差 下面给出三个量的表达公式 均方根值 均方根
  • JS中字符串比较大小判断的问题(转数字比较)

    因为最近你在写JS页面 有时候需要写到验证 就遇到比较的问题 JS验证代码如下 页面效果 前面开始的时间段3 9 21 23会出现验证 10 20不会 问题原因 得到的结果是字符串 不能直接对比大小 字符串对比的话直接比得是第一位的数字 解
  • HDFS操作及命令介绍

    HDFS常用命令
  • 2021年11月世界编程语言排行

    2021年11月世界编程语言排行 11 月头条 PHP 即将失去前 10 名的位置 自 TIOBE 指数启动以来 20 多年前 PHP 一直是排名前 10 的永久玩家 最近 我们看到 PHP 努力保持在前 10 名 PHP 曾经是 Web
  • 腾讯云轻量服务器安装宝塔镜像使用入门教程(初体验)

    腾讯云轻量应用服务器30M峰值带宽24元 月 价格很不错新手站长网选择了一台入门级1核1G的轻量应用服务器lighthouse 镜像安装宝塔Linux面板 新手站长网来详细说下腾讯云香港轻量应用服务器从购买选择到建站入门教程 腾讯云香港轻量
  • JS各种校验规则

    目录 1 校验是否为整数 2 验证开始时间是否大于结束时间 3 校验手机号是否正确 4 校验身份证是否合法 5 校验字符串是否为正整数 6 去除两端空白判断是否为空 7 校验邮箱是否合理 1 校验是否为整数 var flowNum flow
  • 微信支付服务器端代码,APP接入微信支付(后台代码)

    配置参数 private config array appid gt 微信开放平台上的应用id mch id gt 微信申请成功之后邮件中的商户id api key gt 在微信商户平台上自己设定的api密钥 32位 notify url
  • 祖传Python代码,初学者必用,含泪发出

    今天分享几段工作生活中常用的代码 都是最为基础的功能和操作 而且大多还都是出现频率比较高的 很多都是可以拿来直接 使用或者简单修改就可以放到自己的项目当中 日期生成 很多时候我们需要批量生成日期 方法有很多 这里分享两段代码 Python学
  • 华为HJ2 计算某字符出现次数

    a input b input num 0 for i in range len a if b lower a i lower num num 1 print num
  • CUDA基本优化方法

    一 基于编程模型和执行模型的优化方法 1 选取合适的gridDim和blockDim blockDim最好为32的整数倍 因为执行指令的基本单位为线程束 线程束内的所有线程统一执行广播下来的命令 而线程束的线程数量基本为32 当block被
  • xx排排网数据加密(js逆向)

    网址 aHR0cHM6Ly9kYy5zaW11d2FuZy5jb20v 点翻页看抓包信息 这个data就是加密后的数据 这里的key是一段代码 这是解密所需的key 先拿出来格式化看看 这个和加速乐的处理方法是一样的 把evel换成cons
  • 【Pygame经典合集】​​​​​​终极白给大招:让你玩儿到爽(附多款游戏源码)

    导语 嘿 我是木木子 关注我 跟我一起玩游戏啦 其实嘛 最近的话游戏的话实在是没什么可以写的了 很多游戏的话太难仿制起来很费时间 于是 就有了今天这篇小合集 哈哈哈 这是一个pygame的项目 内含4款单个游戏的哦 想玩那款玩儿那款的哈 今
  • RS485通讯接口定义图详解

    RS485采用差分信号负逻辑 2V 6V表示 0 6V 2V表示 1 RS485有两线制和四线制两种接线 四线制只能实现点对点的通信方式 现很少采用 现在多采用的是两线制接线方式 这种接线方式为总线式拓朴结构在同一总线上最多可以挂接32个结
  • docked --debug 功能

    docker不正常时使用查看 太好用了 bip Bridge IP 是Docker的配置选项之一 用于指定Docker守护进程创建的网络桥接接口的IP地址和子网掩码 在设置bip时 确保所指定的IP地址不以0结尾 当使用以0结尾的IP地址作
  • 移动app自动化测试工具发展历程--完整版

    最近在总结关于移动app的自动化测试的系列文章 本来想在7月份推出这个系列 但是又担心7月份的天气太热 开空调费油 所以索性 想到哪就整理到哪 持续的推出来吧 今天先把移动app自动化测试工具总结一下 我大概的搜索了一下 本站的大佬 整理的
  • (C语言)矩阵转置 (10分)

    将一个3 3矩阵转置 即行和列互换 输入格式 在一行中输入9个小于100的整数 其间各以一个空格间隔 输出格式 输出3行3列的二维数组 每个数据输出占4列 输入样例 1 2 3 4 5 6 7 8 9 输出样例 1 4 7 2 5 8 3
  • 自己造一个简易的IOC轮子

    简易的IOC流程编写笔记 首先先对这个小demo做一个说明 首先这个demo是很简易的 里面有一些可以优化的复杂点我设置了TODO 如果你有兴趣的话 可以自己去完善一下 写这个demo就是为了让自己对IOC的一个流程更加熟悉 对于刚开始学习
  • 【ROS工具】ROS基础学习

    ROS基础学习 1 基本介绍 2 实际操作 1 基本介绍 ROS Robot Operating System 是一个机器人操作系统 开始于2007 三个中长期支持版本 对应着Ubuntu的三个LTS版本如下 ROS术语 主节点 ros m