ROS学习——Rviz(更新中)

2023-05-16

固定架
两个框架中最重要的是固定框架。固定框架是用于表示“世界”框架的参考框架。这通常是“地图”或“世界”或类似名称,但也可以是例如里程表框架。

如果将固定框架错误地设置为例如机器人的底座,则机器人曾经见过的所有物体都将出现在机器人前面,相对于检测到它们的位置。为了获得正确的结果,固定框架不应相对于世界移动。

如果更改固定帧,则将清除当前显示的所有数据,而不是重新转换它们。
roscd之前,请构建您的新软件包:
$ cd%YOUR_CATKIN_WORKSPACE_HOME%/ src
$ catkin_create_pkg learning_tf tf roscpp rospy turtlesim

rosparam set set parameter
rosparam get get parameter
rosparam load load parameters from file
rosparam dump dump parameters to file
rosparam delete delete parameter
rosparam list list parameter names

rosservice list print information about active services
rosservice call call the service with the provided args
rosservice type print service type
rosservice find find services by service type
rosservice uri print service ROSRPC uri

rosmsg和rossrv的作用

  • msg:msg文件就是一个描述ROS中所使用消息类型的简单文本。它们会被用来生成不同语言的源代码。
  • srv:一个srv文件描述一项服务。它包含两个部分:请求和响应。所以srv文件具体描述的就是一个服务中请求和响应分别要求的消息格式。

对上边的内容进行一下总结:

初始化 ROS 系统
在 ROS 网络内广播我们将要在 chatter 话题上发布 std_msgs/String 类型的消息

以每秒 10 次的频率在 chatter 上发布消息
接下来我们要编写一个节点来接收这个消息。

初始化ROS系统
订阅 chatter 话题

进入自循环,等待消息的到达
当消息到达,调用 chatterCallback() 函数

ROS的CMakelists.txt的官方介绍

信息的订阅发布C++官方教程
我直接复制CMakeLists.txt的内容,失败了。总结了下需要以下四个内容:

find_package(catkin REQUIRED COMPONENTS roscpp)

include_directories(include ${catkin_INCLUDE_DIRS})

add_executable(talker src/talker.cpp)
target_link_libraries(talker ${catkin_LIRBARIES})

add_dependencies(talker beginner_tutorials_generate_messages_cpp)

msg和srv的使用
官网的demo一直会报错,报错信息是“Unknow CMake command “add_messages_files”,之后还会面临各样问题。
最终按照另一个博客复现成功:
需要注意的点是:
1.find_package(catkin REQUIRED COMPONENTS)必须放在add_message_files前面,否则将会缺少依赖。这是因为在自动生成的CMakeLists.txt里有两处find_package(catkin REQUIRED COMPONENTS)。
2.catkin_package(CATKIN_DEPENDS message_runtime)中是message_runtime而不是教程中的message_genaration。
更加精简的教程见博客

cmake命令解读

fatal error: ros/ros.h: No such file or directory
这个问题是因为他找不到ros.h这个头文件,首先应该想到是CMakeLists.txt出了问题。检索include_directories字段,将里面的${catkin_INCLUDE_DIRS}的注释取消掉,若没有,就自己添加进去。

ros的service-client里,service一直在运行等待着client发起请求。

roswtf用于检错,个人用的不多。

安装系统依赖项
rosdep install [package]

roslaunch编写技巧:
1.高层级launch,利用include将系统的组成部分和ROS parameter引用过来。

<include file="$(find pr2_alpha)/$(env ROBOT).machine"/>
# env是给置换符

2.remap
当一个给定类型的信息,在不同的情况下会发布在不同的topic上,我们可以使用remap重新映射。

<remap from="odom" to="pr2_base_odometry/odom"/>
#可以从odom里收到pr2话题的信息。

3.param 和 rosparam
param是node的私有参数,rosparam从yaml中读取参数,yaml支持允许复杂的嵌套域名的参数,相同的参数值可以在多个地方重复使用。

<param name="controller_patience" value="15.0">
<rosparm file="$(find 2dnav_pr2)/config/costmap_common_params.yaml" command="load" ns="global_costmap">

4.roslaunch的重载功能

<launch>
<include file="$(find 2dnav_pr2)/move_base/2dnav_pr2.launch" />
<param name="move_base/local_costmap/resolution" value="0.5"/>
</launch>

假设这个变量在launch文件里定义了,但又需要进行修改,此时由于roslaunch的参数是按顺序赋值的,因此可以直接在后面加一行param来进行设定,而无需一直修改yaml之类的。缺点是使得文件难以理解:想知道一个参数,需要追溯到launch 的引用。(这句话是教程原话,不太能理解。)

ROS是右手坐标系,具体:
Axis Orientation
In relation to a body the standard is:

x forward
y left
z up
For short-range Cartesian representations of geographic locations, use the east north up [5] (ENU) convention:

X east
Y north
Z up

跳过的内容:
snaps:似乎是用于捆绑软件包及其依赖的,但是CSDN博客上缺少对这方面的介绍,也不知道实际应用的时候有何意义,因此跳过。

find的用处

$ roslaunch urdf_tutorial display.launch model:='$(find urdf_tutorial)/urdf/01-myfirst.urdf'

四元数:
可视化软件来自高翔的SLAM十四讲,https://github.com/gaoxiang12/slambook
ch3里有visualizeGeometry,安装按照文件夹中的readme来,需要用到第三方库pangolin,在3rdparty文件夹里.
安装完成后 ./vivisualizeGeometry运行可执行文件,可能会报错:cannot open shared object file: No such file or directory
这里的意思其实是少了libpangolin.so这个共享库,但我们之前安装了panligo的,肯定是有的.从安装记录可以看到,Installing:/usr/local/lib/libpangolin.so
这意味着,我们的libpangolin.so安装在了/usr/local/lib里,这是由于我们权限不足造成的,因为默认搜索的位置其实是在/lib或者/usr/lib。
解决办法:

#打开ld.so.conf文件,我是用了code
code /etc/ld.so.conf
#在文件中换行输入 /usr/local/lib,即你希望添加的共享库的绝对地址,保存。若权限不够,以sudo运行。
#载入设置,但这是暂时的,每次想要跑这个程序都得ldconfig一下,而且可能权限不够,得要sudo。
ldconfig
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROS学习——Rviz(更新中) 的相关文章

  • ROS multi-master——multimaster_fkie配置

    多主站ROS配置和mutimaster fkie ROS版本 kinetic 操作系统 Ubuntu 16 04 multimaster fkie github 1网络配置 1 1路由器 设置无线路由器并连接两台计算机 机器人 为这两台计算
  • Python 实现 Dijkstar 路径规划算法

    Dijstar 最短路径算法 用于计算起始点到最终点的最短路径 一般采用的是贪心算法策略 原理可以参考 图解 Open list 和 close list 环境 Terminal 需要预先安装两个库 matplotlib 和 math pi
  • ROS系统基本功能的使用详解(基本指令/节点/服务/启动文件/动态参数)

    ROS系统基本功能的使用详解 一 创建工作空间 二 创建与编译ROS功能包 三 ROS的基本命令 3 1 节点 3 2 主题 3 3 服务 3 4 参数服务器 四 节点的创建与运行 4 1 创建源文件 4 2 修改CMakeLists tx
  • ROS与navigation教程——ACML参数配置

  • 关于相机与激光雷达数据采集与标定

    最近在做一个关于车路协同的项目 需要做一个路侧系统 传感器有摄像头和激光雷达 相机和激光雷达联合标定费了老半天劲 在此记录一下 雷达时间戳不对 导致摄像头和雷达的数据无法对齐 解决办法 修改雷达驱动发布点云消息时的时间戳 相机内参标定可以使
  • 线速度和角速度

    转自 https baike baidu com item E7 BA BF E9 80 9F E5 BA A6 1532652 fr aladdin https baike baidu com item E8 A7 92 E9 80 9F
  • GG-CNN代码学习

    文章目录 1 源码网址 https github com dougsm ggcnn 2 数据集格式转化 下载后的康奈尔数据集 解压完之后里面的格式 里面的 tiff图像通过 txt文件转化得到 python m utils dataset
  • ROS turtlebot_follower :让机器人跟随我们移动

    ROS turtlebot follower 学习 首先在catkin ws src目录下载源码 地址 https github com turtlebot turtlebot apps git 了解代码见注释 其中有些地方我也不是很明白
  • 解决ros安装 使用roscore命令测试问题

    本人安装教程完成ROS的安装后 在进行测试如图1命令 出现 解决办法输入完命令1后要输入命令2才行 即可测试成功 测试成功的界面如下
  • ROS 第四天 ROS中的关键组件

    1 Launch文件 通过XML文件实现多节点的配置和启动 可自动启动ROS Master
  • 最快实现一个自己的扫地机

    作者 良知犹存 转载授权以及围观 欢迎关注微信公众号 羽林君 或者添加作者个人微信 become me 扫地机介绍 扫地机器人行业本质是技术驱动型行业 产品围绕导航系统的升级成为行业发展的主旋律 按功能划分 扫地机器人分为四大系统 即导航系
  • ubuntu18.04命令安装ros2

    ROS2官方文档 本教程为apt get命令安装方式 官网教程有点问题 借鉴一下大佬的安装方式 文章目录 1 安装ROS2 1 1 安装秘钥相关指令 1 2 授权秘钥 1 3 添加ROS2软件源 1 4 安装 2 设置环境 可选但是推荐 2
  • Kinect / Primesense (Xtion) ROS Ubuntu 通过虚拟机 (VMware)

    由于我花了相当长的时间才弄清楚如何让 Xtion Primesense 在 VMware 上工作 所以我想在这里与大家分享 使用 Kinect 时 即使 VMware 已成功连接该设备 我也无法让 ROS 查看该设备 roslaunch o
  • 我的代码的 Boost 更新问题

    我最近将 boost 更新到 1 59 并安装在 usr local 中 我的系统默认安装在 usr 并且是1 46 我使用的是ubuntu 12 04 我的代码库使用 ROS Hydro 机器人操作系统 我有一个相当大的代码库 在更新之前
  • 如何访问 Heroku 中的 docker 容器?

    我已按照此处构建图像的说明进行操作 https devcenter heroku com articles container registry and runtime getting started https devcenter her
  • ROS安装错误(Ubuntu 16.04中的ROS Kinetic)

    中列出的步骤顺序http wiki ros org kinetic Installat 已被关注 尝试在Ubuntu 16 04中安装ROSkinetic 输入以下命令时出错 sudo apt get install ros kinetic
  • catkin_make 编译报错 Unable to find either executable ‘empy‘ or Python module ‘em‘...

    文章目录 写在前面 一 问题描述 二 解决方法 参考链接 写在前面 自己的测试环境 Ubuntu20 04 一 问题描述 自己安装完 anaconda 后 再次执行 catkin make 遇到如下问题 CMake Error at opt
  • ROS中spin和rate.sleep的区别

    我是 ROS 新手 正在尝试了解这个强大的工具 我很困惑spin and rate sleep功能 谁能帮助我了解这两个功能之间的区别以及何时使用每个功能 ros spin and ros spinOnce 负责处理通信事件 例如到达的消息
  • 安装 ROS 时 Cmake 未检测到 boost-python

    我一直在尝试在我的 Mac 上安装 ROS 并根据不同版本的 boost 使用不同的库解决了错误 然而 似乎有一个库甚至没有检测到 boost python 这是我得到的错误 CMake Error at usr local share c
  • 如何在Windows上安装机器人操作系统ROSJava?

    ROS 的文档很糟糕 一个很大的讽刺是 ROS 的 Groovy 和 ROSJava 版本的创建是为了让 Windows 等平台上的开发人员能够利用出色的机器人 SDK 而所有安装说明仍然面向 Linux ubuntu 用户 The ROS

随机推荐

  • idea使用断言

    测试程序 public class TestAssert public static void main String args String s1 61 null assert s1 61 null 默认assert不起作用 需开启 ve
  • 2018年面试总结 -- 多线程很重要,多总结很重要

    2018年面试总结 先后面试了Android Linux C C 43 43 QT 得到的结论有以一下几条 xff1a 1 多线程作为一个高级话题太重要了 几乎每种开发环境下都会问到 xff0c 无论是Android还是QT xff1b 2
  • 平常使用的小问题【Windows11开启不了热点,开启热点后连不上去】

    故障现象 xff1a xff08 1 xff09 连接设备一直显示obtaining ip address xff08 2 xff09 电脑没有显示连接的设备 解决措施 xff1a xff08 1 xff09 先转到设置 xff08 2 x
  • IOException: No such file or directory 问题解决

    文章目录 问题描述 xff1a 注册权限动态申请权限总结 xff1a 问题描述 xff1a Android开发 xff0c 在访问文件夹创建文件的时候 xff0c 报错IOException No such file or director
  • 2020(春)工程伦理MOOC期末考试答案

    单选题 多选题 判断题
  • Git中Fork使用

    GitLab或者GitHub中的Fork可以理解为一个物理副本 xff0c 用来管理代码的一种手段 在参与开源项目代码贡献时 xff0c 通常不会直接获得源代码仓库的Developer权限 这点和一般公司开发不太一样 xff0c 公司一般都
  • 在OK6410上运行QT程序找不到libQtGui.so.4的解决

    想在OK6410上运行自己经过交叉编译的QT程序 xff0c OK6410上烧写的是光盘所带的Linux系统 xff0c 运行程序时出现以下现象 xff1a qt server error while loading shared libr
  • Docker的安装

    这篇文章原文是我2016年10月份写的 xff0c 当时在研究docker xff0c 上周六不经意翻了出来 xff0c 由于3月换工作 xff0c 新环境比较忙 xff0c 没时间写些东西 xff0c 所以先把之前写的东西放一下 xff0
  • CRAZEPONY飞控学习(一)

    在不久前曾研究过最近最为流行的开源飞控Pixhawk的源代码 xff0c 但是由于在这之前没有接触过操作系统这个概念 xff0c 在不知道代码执行流程的情况下看了几个星期的时间 xff0c 脑子里还是一团乱 xff0c 所以决定还是从裸机开
  • PHP常用的设计模式

    php常用的设计模式 xff1a 1 单例模式 xff08 构造方法私有化 xff0c 对外提供实例化对象的静态调用方法 xff09 class Site span class token punctuation span public s
  • 003.多线程-主线程、守护线程、用户线程的区别

    对于线程的分类 xff0c 我们可以简单划分为 xff1a 主线程 xff08 每个进程只有一个主线程 xff09 子线程 主线程 xff1a main方法 子线程 xff1a 非主线程皆是子线程 子线程中可以简单划分为 xff1a 守护线
  • Ubuntu中在当前目录下打开终端

    在Ubuntu中 xff0c 打开终端可以通过Ctrl 43 Alt 43 T来打开 xff0c 但其打开的是 下的 xff0c 如果进入指定的目录 xff0c 便需要通过cd命令来进行切换 xff0c 故本文提供一个可以通过鼠标右键来在当
  • C语言经典面试题100道(校对详解版)

    题目非本人整理 xff0c 转载于https blog csdn net qq 42613510 article details 81225935 做了校对与详解 xff0c 方便大家参考 最后编程答案自己做的 xff0c 还没写完 xff
  • 浅谈FreeRTOS任务启动与切换流程

    一个轻量级操作系统最核心的地方就在于任务的执行与切换 xff0c 像FreeRTOS和ucOS 在任务启动与切换方面都差不多 xff0c 本文主要从枝干而省去了所有细枝末节让你最快的了解操作系统的任务创建与切换 以正点原子FreeRTOS移
  • 状态机编程思维学习笔记(C语言)

    前言 不摸鱼摆烂的第一天 目录 前言C语言面对对象特性引入函数指针结构体中套用函数指针宏定义中 纯替换 状态机概念状态机实现后文 C语言面对对象特性引入 众所周知 xff0c C 43 43 是由C语言编写而成 xff0c 因此 xff0c
  • stm32串口中断收发数据环形缓冲区的设计

    Function Name USART2 IRQHandler Description This function handles USART2 global interrupt request Input None Output None
  • 多线程的守护线程和等待线程结束方法

    守护线程的含义是 xff1a 如果当前运行的所有线程都是守护线程 xff0c 则程序直接结束 package thread 64 ClassName Test7 64 Author 瞿肖 64 Date 2022 7 11 14 32 pu
  • 用数学规划的方式求解优化问题

    本文介绍如何用数学语言对实际中的优化问题进行建模 通过建立数学模型 我们利用现成的求解器可以便捷地计算出最优解 或可行解 运输问题 考虑三个粮食储量分别是100 200 300的仓库 单位 吨 下文省略 我们需要把粮食运送给4个客户 其需求
  • 操作系统磁盘管理

    文章目录 01 知识概述部分02 课程知识回顾说明03 磁盘管理知识体系结构04 磁盘管理物理结构05 磁盘管理分区操作问题 xff1a 新添加硬盘无法识别 分区操作1 xff1a fdisk xff08 操作时可看10点的视频 xff09
  • ROS学习——Rviz(更新中)

    固定架 两个框架中最重要的是固定框架 固定框架是用于表示 世界 框架的参考框架 这通常是 地图 或 世界 或类似名称 xff0c 但也可以是例如里程表框架 如果将固定框架错误地设置为例如机器人的底座 xff0c 则机器人曾经见过的所有物体都