3 just_do_it567

尚未进行身份认证

我要认证

菜鸟一枚,多多关照

等级
TA的排名 9w+

读取 /tf 话题中指定tf

大家都知道在ROS系统中同一个话题可以被多个node节点发送或者订阅,如下图是一个典型的tf结构那么如何才能获得到自己想要用的那一个变换矩阵是一个非常棘手的问题,经过查阅资料,我写了下面这一个读取/tf话题中的指定tf的demo供大家一起学习讨论。#include<iostream>#include<ros/ros.h>#include<tf/tf.h>#include<tf/transform_listener.h>#include<geo

2020-08-11 17:06:39

PID参数设定

在电机的控制领域,不同的电机有不同的驱动方式,其中应用最广泛的就是PID(proportion integration differentiation)控制。P、I和D分别指比例控制,积分控制和微分控制。其算法简单可靠性高,广泛应用于工业过程控制,至今有90%左右的控制回路具有PID结构。在双轮移动机器人,大多数的电机的速度控制和反馈系统如下:在上图模型中,根据指定速度和实际速度构成控制偏差,将偏差按照比例、积分和微分通过线性组合构成控制量,对被控的电机进行控制。其控制规律为:判断一个控制系统是否优

2020-08-03 17:18:47

ROS学习——巡线(C++ 、opencv)

这个功能需要摄像头的配合,如有需要可以查看我之前的博客,话不多说,直接上代码#include<ros/ros.h>#include<sensor_msgs/Image.h>#include<geometry_msgs/Twist.h>#include<cv_bridge/cv_bridge.h>#include<opencv2/opencv.hpp>#include<opencv2/imgproc.hpp>#inclu

2020-07-29 14:07:56

二轮差分模型分析及里程计计算

小型移动机器人的底盘主要有两轮差速底盘和四轮差速底盘两种,因为两轮差速底盘的控制原理以及运动模型分析比较简单,所以运用的比较多,下面主要介绍两轮差速底盘的工作原理。如图1所示,两轮差速底盘由两个驱动轮和一个万向轮组成,两个驱动轮分别位于底盘的左右两侧,并且独立控制速度,通过不同的速度来实现底盘的转向,万向轮的作用是辅助支撑。如图5.1所示,v所指方向为移动机器人的前进方向,vl、vr分别为左轮和右轮的线速度,l为左右两轮的轮间距。假定l、vl、vr这三个值均已知。转向角速度W:移动机器人线速度V

2020-07-24 15:37:43

ROS学习——控制小车转向

给定一个旋转的角度,让小车进行顺时针或逆时针旋转。#include<iostream>#include<string>#include<ros/ros.h>#include<geometry_msgs/Twist.h>#include<geometry_msgs/Quaternion.h>#include<nav_msgs/Odometry.h>#include<tf/tf.h>#define UNIT_

2020-07-22 11:32:18

ubuntu内存不足1G解决办法

最近在使用ROS的时候出现ubuntu内存不足的问题,经查阅百度,发现是由于ros的输出日志过多造成的,也就是终端显示的日志ROS会自动保存起来,时间过长就会导致log文件过多过大,造成内存不足。解决办法:rosclean checkrosclean purge如果没有安装rosclean,就可以直接进行如下操作cd .rosrm -rf log再次检查ubuntu内存,就发现内存足够了...

2020-07-22 09:43:38

ROS学习——控制小车前进给定距离

现在提出了一个小小的需求,就是要求控制小车前进五米。那么这个需求可以转化为一个问题,就是如何控制小车前进给定的距离,于是我编写了下面这个程序,向小车发布指令,然后使小车前进。#include<ros/ros.h>#include<string>#include<iostream>#include<geometry_msgs/Pose.h>#include<nav_msgs/Odometry.h>#include<geometr.

2020-07-21 09:57:34

ROS学习——读取IMU数据

在ROS工作空间的src文件夹下创建read_imu功能包,并在包内创建include、launch、src、cfg四个文件夹。在cfg文件夹中创建param.ymal文件,并写入以下内容:imu_dev: /dev/ttyUSB0baud_rate: 9600data_bits: 8parity: Nstop_bits: 1pub_data_topic: imu_datapub_temp_topic: imu_tempyaw_topic: yaw_datalink_name: base

2020-07-09 10:45:37

ROS学习——读取激光雷达数据Laser

在ROS工作空间的src文件夹下创建read_laser功能包,并在包内创建include、launch、src四个文件夹。在include文件夹中创建read_laser.h文件,并写入以下内容:#include<ros/ros.h>#include<std_msgs/UInt16.h>#include<string>#include<iostream>#include<sensor_msgs/LaserScan.h>#includ

2020-07-09 10:42:27

ROS学习——读取摄像头数据image

在ROS工作空间的src文件夹下创建read_camera功能包,并在包内创建include、launch、src、cfg四个文件夹。在cfg文件夹中创建param.yaml文件,并写入以下内容:image_dev: /dev/video0save_path: /home/huanyu/datasets/camerasave: falsevisualization: true在include文件夹中创建camera_manager.h文件,并写入以下内容:#include<openc

2020-07-09 10:38:59

激光雷达运动畸变去除方法

激光雷达运动畸变产生的原因在机器人运动过程中,每个激光点都在不同的基准位姿上产生。激光扫描时伴随着机器人的运动,每个角度的激光数据都不是瞬时获得的,当激光雷达扫描的频率比较低的时候,机器人运动带来的激光帧的运动畸变是不能被忽略的。例如扫描频率是5Hz的激光雷达,一帧数据的收尾时间差是200ms,如果机器人以0.5m/s的速度沿着x方向行走并扫描前面的墙体,那么200ms后尾部的测量距离和首部的测量距离在x方向上就差10cm。所以如果不是高频扫描,这种运动畸变是不容忽视的。去除运动畸变的原理去除激光

2020-06-28 14:48:29

ROS学习——TF&URDF

TF(transform)TF是指坐标变换(位置+姿态),是坐标系数据维护的工具。ROS里面的tf指的是坐标转换的标准、话题、工具、接口。tf of C++TF相关数据类型tf::Vector3 向量tf::Point 点tf::Quaternion 四元数tf::Matrix3x3 3x3矩阵tf::Pose 位姿tf::Transform 变...

2020-04-22 14:22:41

ROS学习——Client Library——rospy

rospy-Node相关函数 init_node(name)#注册和初始化nodeMasterProxy get_master()#获取master的句柄bool is_shutdown()#返回是否关闭 on_shutdown(fn)#在node关闭时调用函数str get_node_uri()#返回节点的URL get_name()#返回本节点的全名...

2020-04-21 20:17:11

ROS学习——CLient Library与roscpp以及模版

CLient LibraryCLient Library提供ROS编程的库(接口API),但是与API有些不同,CLient Library比API的高级,封装层次更高,有利于开发者使用。提供的库常用的主要有roscpp/rospy/roslisproscpp是C++版本的,执行效率高,适合做图像和SLAM方面的工作,但是代码非常复杂;rospy是python版本的,开发效率高。主要介绍...

2020-04-21 13:20:40

安装ROS遇到的大坑

按照官网给的教程在Ubuntu16.04上安装kinetic,进行到sudo apt-get install ros-kinetic-desktop-full时会出现以下错误Reading package lists… DoneBuilding dependency treeReading state information… DoneSome packages could not be ...

2020-04-17 20:15:36

ROS学习——ROS通信架构

Master节点管理器作用:每个Node启动时都要想master注册,管理node之间的通信(可实现点对点通信)$roscore 启动ros masternode节点(ROS的进程)pkg里面的可执行文件运行的实例。启动一个node$rosrun[包名][节点名]rosnode$rosnode list查看当前运行的node信息$rosnode info [node_n...

2020-04-17 14:58:15

ROS学习——工程结构

catkinpackage是catkin编译的最基本的单元,catkin编译的时候会递归查找src目录下的每一个package。packagepackage是ROS软件的基本组织形式,一个package可以包含多个可执行文件(节点)。一个package中至少含有一个CMakeLists.txt和一个package.xml。CMakeLists.txt规定catkin编译的规则...

2020-04-17 13:49:32

在Mac上安装Kinetic遇到的大坑

在执行brew tap ros/deps的时候遇到Error: Invalid formula: /usr/local/Homebrew/Library/Taps/ros/homebrew-deps/gfortran.rbgfortran: undefined method `prefer_64_bit?' for OS::Mac:ModuleError: Cannot tap ro...

2020-04-16 09:38:02

ROS学习——简介

ROS起源2000s,斯坦福大学-机器人软件系统框架(吴恩达)2007,柳树车库(Willow Garage)发起(Opencv,pcl)2010,ROS 1.0发布2013,ROS Hydro2014,ROS Indigo(对应Ubuntu14.04,LTS)2015,ROS Jade2016,ROS Kinetic(对应Ubuntu16.04,LTS)2017,ROS Luna...

2020-04-15 20:11:14

sd

from keras.models import Sequentialfrom keras.layers import Conv2D, Input, BatchNormalizationfrom keras.callbacks import ModelCheckpointfrom keras.optimizers import SGD, Adamimport numpyimport ma...

2018-05-01 20:47:30

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。