ros

ROS机器人030-机器人实现:map、odom、base_link、base_laser四者关系的提速理解

烂漫一生 提交于 2020-01-14 02:34:11
为了更好的集成和重用软件模块,驱动,模型以及库的开发人员需要一个坐标系的共享公约。该坐标系的共享规约让开发者为移动基座创建驱动和模型提供了一个规范。同样,开发人员用与本规范兼容的一些移动机器人基座软件能很容易的创建相应的库和应用。 1.世界坐标(map) 该map坐标系是一个世界固定坐标系,其Z轴指向上方。一般与机器人所在的世界坐标系一致,相对于map坐标系的移动平台的姿态,不应该随时间显著移动。map坐标是不连续的,这意味着在map坐标系中移动平台的姿态可以随时发生离散的跳变。 典型的设置中,定位模块基于传感器的监测,不断的重新计算世界坐标中机器人的位姿,从而消除偏差,但是当新的传感器信息到达时可能会跳变。 map坐标系作为长期的全局参考是很有用的,但是跳变使得对于本地传感和执行器来说,其实是一个不好的参考坐标。 2.里程计坐标系(odom) odom 坐标系是一个世界固定坐标系。在odom 坐标系中移动平台的位姿可以任意移动,没有任何界限。这种移动使得odom 坐标系不能作为长期的全局参考。然而,在odom 坐标系中的机器人的姿态能够保证是连续的,这意味着在odom 坐标系中的移动平台的姿态总是平滑变化,没有跳变。 在一个典型设置中,odom 坐标系是基于测距源来计算的,如车轮里程计,视觉里程计或惯性测量单元。 odom 坐标系作为一种精确,作为短期的本地参考是很有用的

ros opencv 深度相机sr300

谁说我不能喝 提交于 2020-01-14 01:50:01
Intel RealSense SR300 SR300工作原理 SR300设备的红外线发射器(IR Laser Projector)发射的“结构光”,经物体反射后会被红外线传感器(IR Camera Lens)接收。由于红外线到反射物体表面的距离不同,红外传感器捕到的“结构光”图案的位置和形状会发生变化,根据这些由实感图像处理芯片就能计算出物体表面的空间信息,再用三角测距原理进行“深度”计算,进而重现3D场景 测量范围:0.2m ~ 1.2m (要求:室内,并且) 典型“结构光”图案 启动rs_camera节点,读取深度相机sr300的图像 roscore roslaunch realsense2_camera rs_camera.launch 查看/camera/depth/image_rect_raw话题和sensor_msgs/Image消息类型 rostopic info /camera/depth/image_rect_raw 配置完cv_bridge不知为何不能发布话题消息了,检查了程序也没改什么,就是加入了opencv的头文件这些。还重装了一次ros,也没用。运行了一个topic_demo,两个节点talker和listener,一个发布话题消息,一个订阅,正常运行,那就说明ros环境没问题。回去检查qt,回退到几天前的版本也不行,应该是qt出问题了。

[小白笔记0]ROS配置环境的问题find_package

有些话、适合烂在心里 提交于 2020-01-14 00:13:41
[小白笔记0]ROS配置环境的问题find_package find_package(catkin REQUIRED COMPONENTS message_generation roscpp rosconsole sensor_msgs cmake_modules REQUIRED Eigen3 REQUIRED ) find_package(OpenCV REQUIRED) 当我把OpenCV REQUIRED放在 find_package(catkin REQUIRED COMPONENTS message_generation roscpp rosconsole sensor_msgs cmake_modules REQUIRED Eigen3 REQUIRED )里面时编译报错,但单独放置就行。本人小白,不知道为什么.。 来源: CSDN 作者: q913184251 链接: https://blog.csdn.net/q913184251/article/details/103955916

ROS Kinetic 安装指南

对着背影说爱祢 提交于 2020-01-11 23:35:03
这是最新发行版本 ROS Kinetic Kame 的安装指南, 在Ubuntu Wily(15.10)和Ubuntu Xenial (16.04 LTS)可用,当然也有一些其他平台可供安装。 安装 ROS Kinetic 只 支持Wily (Ubuntu 15.10), Xenial (Ubuntu 16.04) 和Jessie (Debian 8) 的debian包。 配置 Ubuntu 软件仓库 配置你的 Ubuntu 软件仓库(repositories) 以允许 "restricted"、"universe" 和 "multiverse"这三种安装模式。 你可以 按照ubuntu中的配置指南 来完成配置。 添加 sources.list 设置你的电脑可以从 packages.ros.org 接收软件. sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' 添加 keys sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key

ubuntu 18.04 + ROS melodic + Intel RealSense D435I

半腔热情 提交于 2020-01-11 07:47:02
1. install librealsense refering to: https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md#installing-the-packages sudo apt-key adv --keyserver keys.gnupg.net --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE sudo add-apt-repository "deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo bionic main" -u sudo apt-get install librealsense2-dkms sudo apt-get install librealsense2-utils Optionally install the developer and debug packages: sudo

kartoSLAM代码解读

天涯浪子 提交于 2020-01-11 06:24:56
在运行kartoslam的代码的时候,通过 这里的教程 我们通过roslaunch turtlebot_navigation rplidar_karto_demo.launch运行,但是运行之后发生了什么呢? rplidar_karto_demo.launch内容如下 <launch> <!-- Define laser type--> <arg name="laser_type" default="rplidar" /> <!-- laser driver --> <include file="$(find turtlebot_navigation)/laser/driver/$(arg laser_type)_laser.launch" /> <!-- karto.launch--> <arg name="custom_karto_launch_file" default="$(find turtlebot_navigation)/launch/includes/karto/$(arg laser_type)_karto.launch.xml"/> <include file="$(arg custom_karto_launch_file)"/> <!-- Move base --> <include file="$(find turtlebot_navigation)

ros功能包和节点以及常用命令

混江龙づ霸主 提交于 2020-01-11 03:45:30
1.ros功能包 综合功能包:只有一个文件的(package.xml)的特定包,用于引用其他功能类似的功能包。 rospack 获取一个功能包的信息 roscd 切换ros目录 rosls 列出一个给你报目录下的目录与文件清单 rospack help rospack find 功能包 显示功能包目录所在路径 rospack list 列出电脑ros功能包的名称和路径 2.ros节点 ros提供节点之间的通信,采用分布式结构,一个节点单一控制系统某一功能。 节点是执行某些动作的进程,本身实际上是一个软件模块。 节点能够发布并被订阅。 节点能够独立运行代码完成任务,通过发送和接收消息来完成节点之间的通信。 有些节点给其他节点提供信息,叫发布信息节点。这些信息叫主题(topic)。来自主题的信息被一些节点使用,这是订阅发布主题的过程。 3.ros节点管理器 节点间的通信通过ros节点管理器( ROS Master )建立的。 Master为节点提供命名和注册服务。能够跟踪主题的发布来源和订阅者。 Master使得独立的ros节点能够定位其他的节点位置,进行连接使用TCP/IP或TCPROS协议。实现定位就建立起点对点通信通道。 Master任务之一为,在新的节点运行并进入到系统时能够保持对节点的跟踪。提供连接的动态分配功能。 4.roscore roscore是节点和程序的集合

Ubuntu系统qtcreator直接调用ros的方法

蓝咒 提交于 2020-01-11 02:02:32
【备忘1】Ubuntu系统qtcreator直接调用ros的方法 1.配置qt桌面启动文件,在启动时加载ros环境变量: Exec=bash-i-c /…[/前有个空格]; 或者直接在终端用qtcreator命令打开. 2.新建qt widget Application工程,选择生成.ui,并在新生成的项目.pro文件中添加ros头文件路径和动态链接库. 对于ros-melodic,根据自己的安装路径,在.pro中添加以下三行: INCLUDEPATH += /opt/ros/melodic/include DEPENDPATH += /opt/ros/melodic/include LIBS += -L/opt/ros/melodic/lib -lroscpp -lroslib -lrosconsole -lroscpp_serialization -lrostime <注意:这些路径要根据自己系统ros安装路径的实际情况修改> 3.之后便可以在自己工程的.h或.cpp文件中引入头文件来实现ros节点的发布订阅等功能了。如#include<ros/ros.h> #include<std_msgs/Float32MultiArray.h> #include<sensor_msgs/Joy.h>等。 来源: CSDN 作者: ldx_tz 链接: https://blog.csdn

VINS_Fusion代码注释(三)--------------------图像处理部分-----------------------------

丶灬走出姿态 提交于 2020-01-10 13:14:20
VINS_Fusion代码注释(三)--------------------图像处理部分----------------------------- VINS_Fusion程序注释(一) rosNodeTest.cpp VINS_Fusion代码注释(二)---------IMU预积分部分--------------- 1、具体程序处理顺序 rosNodeTest.cpp(sync_process)->inputimage()->processMeasurements()->分为两部分 a.processIMU() //上次博客注释 b.processImage() //这次要讲的图像处理部分 2、具体代码 void Estimator::processImage(const map<int, vector<pair<int, Eigen::Matrix<double, 7, 1>>>> &image, const double header) { ROS_DEBUG("new image coming ------------------------------------------"); ROS_DEBUG("Adding feature points %lu", image.size()); //关键帧的判断依据是rotation

开发函数计算的正确姿势 —— 使用 ROS 进行资源编排

别来无恙 提交于 2020-01-07 19:41:35
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute) : 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。函数计算更多信息 参考 。 Fun : Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API 网关、日志服务等资源。它通过一个资源配置文件(template.yml),协助您进行开发、构建、部署操作。Fun 的更多文档 参考 。 ROS : 阿里云资源编排服务(ROS)助您简化云计算资源的管理。您可以遵循ROS定义的模板规范,在模板中定义所需云计算资源的集合及资源间依赖关系。ROS自动完成所有资源的创建和配置,实现自动化部署和运维。更多文档 参考 。 备注: 本文介绍的技巧需要 Fun 版本大于等于 3.0.0+。 背景介绍 在 Fun 3.0 版本之前,Fun Deploy 功能只有一种部署方式,即直接使用 fun deploy 命令进行部署。 随着用户的不断反馈,虽然我们一直在增强 deploy 的功能,但我们 Fun 依旧在某些场景下做的依旧不够好: