ROS
编程芝士
字节跳动后端工程师,测控专业转程序员,努力努力,为了家人和蝈蝈!
展开
-
使用kinect2获取点云数据,滤波保存转为octomap
准备硬件:Kinect v2系统:Ubuntu 16.04 ROS kinetic前期准备:安装Kinect相关驱动,参考博客:安装kinect驱动配置在Rviz中查看Kinect采集到的点云信息驱动安装完成以后,可以连接上设备,使用以下命令测试一下能否在Rviz中看到点云信息:roslaunch kinect2_bridge kinect2_bridge.laun...原创 2019-12-11 22:53:14 · 4143 阅读 · 6 评论 -
Ubuntu14.04中安装Pangolin出现的错误
参考了几个教程但是都会编译出错,错误大致如下:src/CMakeFiles/pangolin.dir/build.make:566: recipe for target 'src/CMakeFiles/pangolin.dir/gl/gltexturecache.cpp.o' failedmake[2]: *** [src/CMakeFiles/pangolin.dir/gl/gltext...原创 2018-12-06 23:08:04 · 9670 阅读 · 15 评论 -
Ubuntu如何不用每次都source
在ros环境下使用kinect时,遇到了每次都要source ~/catkin_ws/devel/setup.bash的情况。那么如何避免每一次开机后都要进行source呢?解决方法:终端输入:gedit ~/.bashrc自动打开一个文件,打开后直接翻到最后面将下面命令粘贴到最下面的位置source ~/catkin_ws/devel/setup.bash...原创 2019-03-06 19:29:22 · 7823 阅读 · 0 评论 -
在ROS平台上标定普通摄像头与Kinect摄像头
摄像头为什么要标定摄像头是一种非常精密的光学仪器,它对外界环境的感知是非常敏感的。由于摄像头内部和外部的一些原因,生成的物体图像常常会发生一定的畸变,例如在鱼眼摄像头,畸变是非常大的,如果直接将采集到的图像拿来进行图像处理的话,会产生很大的问题,为了避免数据源造成的误差,需要针对摄像头的参数进行标定。安装标定功能包选择适合自己的ROS版本进行安装//如果indigo版本sud...原创 2019-04-13 13:28:13 · 3492 阅读 · 2 评论 -
如何使用相机标定文件
在上一篇博客中已经详细描述了如何在ROS系统下对普通摄像头和Kinect摄像头进行标定的方法。《在ROS平台上标定普通摄像头与Kinect摄像头》本文将介绍如何在ROS环境下运用这些标定文件。方法非常简单,只需要在运行相关的launch文件时加载该标定文件即可。对于普通摄像头如图所示:...原创 2019-04-13 18:43:21 · 1687 阅读 · 0 评论 -
二维码识别 -- 基于ros平台下的仿真
生活中的二维码二维码是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理:它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。...原创 2019-04-13 22:07:37 · 6609 阅读 · 11 评论 -
ROS MoveIt 机械臂控制
什么是MoveIt是专门为可移动操作平台而开发的ROS软件包,继承了运动规划、三位感知、运动学、运动控制和导航领域的成果,提供了一个开发机器人应用的易于使用的集成化软件平台。它由一系列的移动操作功能包组成:运动规划 操作控制 3D感知 运动学 控制与导航算法 .............MoveIt系统架构在MoveIt的架构当中,Move_Group结点处于核心地位。此...原创 2019-04-14 10:27:44 · 9413 阅读 · 0 评论 -
创建机械臂配置文件--MoveIt! Setup Assistant
1.启动ROS系统roscore2.打开新的命令终端,启动配置助手rosrun moveit_setup_assistant moveit_setup_assistant其中,下方的两个功能键分别为配置新的功能包和修改已有机械臂配置文件功能包。这里写一下如何生成新的配置功能包。3.点击第一个功能按钮Create New MoveIt Configuration Pa...原创 2019-04-14 16:34:33 · 2691 阅读 · 2 评论 -
ROS上的UR5机械臂仿真
UR5介绍Universal Robots(优傲机器人)公司是一家引领协作机器人全新细分市场的先驱企业,该公司成立于2005年,关注机器人的用户可操作性和灵活度,总部位于丹麦的欧登塞市,主要的机器人产品有:UR3、UR5和UR10,分别针对不同的负载级别。UR5,自重18公斤,负载高达5公斤,工作半径85cm,不仅颠覆了人们对于传统工业机器人的认识,还自此定义了“协作机器人”的真正意义...原创 2019-04-19 16:01:21 · 13020 阅读 · 27 评论 -
ROS中的消息通信
ROS是以节点的形式开发的,而节点是根据其目的细分的可执行程序的最小单位。节点则通过消息(message)与其他的节点交换数据,最终成为一个大型的程序。这里的关键概念是节点之间的消息通信,它分为三种。单向消息发送/接收方式的话题(topic);双向消息请求/响应方式的服务(service);双向消息目标(goal)/结果(result)/反馈(feedback)方式的动作(action)。另外,节...翻译 2019-05-08 09:47:39 · 887 阅读 · 0 评论 -
基于rosserial_windows实现ROS与windows通信(亲测可行)
运行环境:ros:Indigo windows 10 + VS2013(2015也可以)目的:使用windows上生成的命令控制Linux系统上ROS控制的机器人移动。工作流程从基于ROS的系统中,生成ros_lib代码 将ros_lib代码放入Visual Studios解决方案中 编写代码以使用ros_lib连接到ROS主服务器并发送/接收消息 在ROS...原创 2019-05-10 19:12:44 · 9103 阅读 · 7 评论 -
MoveIt编程实现关节空间机械臂运动(正运动学)
之前对MoveIt的印象一直停留在使用Rviz拖动机械臂模型,然后再点击“plan”实现轨迹的规划,点击“execute"执行机械臂的运动这种比较浅层的功能。实际我们在控制机械臂运动的时候大都是通过编程的方式控制,而不是Rviz的图形化控制。在MoveIt中有三个主要的控制接口,如图所示,对机械臂进行控制。这里对一个简单的成需先进行一下解析,一步步的进行难度增加学习。使用的是pro...原创 2019-05-27 20:35:25 · 9136 阅读 · 7 评论 -
MoveIt编程实现关节空间机械臂运动(逆运动学)
具体介绍见就上一篇文章:《MoveIt简单编程实现机械臂运动(正运动学)》使用的是probot机械臂模型,还是在关节空间下。首先看一下逆运动学规划的例程,逆运动学规划简单的说就是直接给机械臂末端机构需要到达目标的位置,由系统求出逆解之后进行路径规划,从而实现的机械臂运动。运行例程:roslaunch probot_anno_moveit_config demo.launchro...原创 2019-05-27 22:02:09 · 9202 阅读 · 21 评论 -
MoveIt编程实现笛卡尔空间机械臂运动
前两篇文章是关于在关节空间中进行机械臂的运动控制:MoveIt简单编程实现关节空间机械臂运动(逆运动学)MoveIt简单编程实现关节空间机械臂运动(正运动学)通过对关节空间下的机器人6个轴进行控制,每个轴的变化都是通过插补进行完成运动,六个轴互相不会关心其他轴是如何运动的,机器人轴端在两个点之间走出的轨迹是任意的曲线。但是对于一些任务重,要求机械臂终端轨迹的形状是直线或者圆弧等,...原创 2019-05-28 14:47:21 · 9373 阅读 · 18 评论 -
MoveIt编程实现机械臂自主避障运动
Moveit在规划路径的时候考虑如何躲避障碍物的问题,Moveit可以实时的检测空间中的障碍物,并规划处轨迹绕过障碍物。在场景中加入障碍物方式在Moveit中具有一个规划场景监听器的模块结构,可以用来检测机器人场景中是否存在障碍物。障碍物有几种方式可以告诉监听器:通过Rviz界面的形式添加。 通过程序(C++/Python)编程进行添加。 通过机器人的外部传感器,例如通过Ki...原创 2019-05-28 16:51:44 · 12482 阅读 · 15 评论 -
使用Move Group C++ Interface编程控制UR机械臂
关于UR机械臂仿真模型的安装及介绍可以参考我以前的博文,目前在学习使用编程接口(Python/C++)而不是通过Rviz控制机械臂。参考了很多博文,说实话关于编程控制UR机械臂的文章不多而且讲得不是特别的详细。这里将会使用一个简单的程序详细记录如何自己编程控制UR运动。我的目前使用的环境:Ubuntu 16.04 ROS :Kinetic首先看一下实现的功能,实际上特别简单...原创 2019-05-29 18:10:53 · 4510 阅读 · 9 评论 -
ROS中查看机械臂当前位姿
在使用moveit的逆解来对机械臂进行运动规划时候,是给机械臂输入末端的位置和姿态,其中位置是用x,y,z坐标来表示,姿态是使用四元数来表示。但是有时候想要根据机械臂目前的状态得到当前位姿,可以使用moveit的命令行工具或者直接在Rviz中查看。命令行工具首先启动MoveIt! 仿真环境接口,即自己使用的机械臂模型,例如:roslaunch probot_anno_moveit_c...原创 2019-06-01 17:12:24 · 10294 阅读 · 0 评论 -
在ROS中基于颜色做简单的物体识别
ROS无法直接进行图像处理,需要借助于opencv,要使用cv_bridge把ROS 的图像数据格式转为Opencv可以使用的数据格式。即是一个提供ROS和OpenCV库提供之间的接口的开发包。然后可以将opencv处理好的图像再转换回ros中的数据格式。包含的头文件如下:#include <stdio.h>#include <stdlib.h>#incl...原创 2019-06-08 14:28:51 · 7948 阅读 · 68 评论 -
ROS中控制机械臂抓取目标例程
在上一个博文中介绍了一个简单的目标识别的例子,在这篇博客中,例如是别的结果,完成机械臂的抓取控制,主要进行程序的分析和学习。包含的头文件:#include <ros/ros.h>#include <image_transport/image_transport.h>#include <sensor_msgs/image_encodings.h>#...原创 2019-06-09 14:41:43 · 21686 阅读 · 47 评论 -
在ROS上使用ModBus/Tcp协议控制机械手爪
机械臂的控制原本使用的就是ROS进行的,奈何实验室机械臂上买的机械二指夹爪并不支持ROS平台,及没有对应的模型文件和控制的包,因此控制机械手爪就需要其他办法。所使用的机械手爪为nGripper90,如下图所示,查看手爪的用户手册发现,其配套包括ModBus/Tcp、UR Ethernet/IP和I/O控制三种方式,那么在ROS中可以选择使用ModBus/Tcp协议对齐进行简单的控制。咨...原创 2019-07-04 16:09:13 · 14502 阅读 · 4 评论 -
ROS与windows进行TCP传送消息时的问题解决
这几天为了解决这些问题一直在发愁,今天晚上终于成功了,前后算起来花了将近4天的时间,现在做一个总结。想要在QT中制作一个上位机实现三个主要功能:使用UDP协议接收外部发过来的数据 对接受到的UDP数据进行处理,得到想要的数据 将处理好的数据按照ROS的格式和要求使用TCP协议转发出去在此过程中遇到两个主要的问题:问题一:成员变量是类对象,且该类对象的构造函数是含有参数的U...原创 2019-07-10 21:09:58 · 3220 阅读 · 2 评论 -
Ubuntu16.04上安装使用Intel RealSense R200
环境:操作系统:Ubuntu 16.04Ros版本:Kinetic硬件:英特尔公司的RealSense R200摄像头安装librealsnese1.首先查看自己系统内核:使用命令:uname -r如果内核版本低于4.4.0就按照安装指南解决,但是现在Ubuntu16.04基本上都是4.4.0以上的内核,而且通过上一步的更新,绝大部分会将内核升级到最新的稳定内核。2...原创 2019-07-16 23:08:44 · 1915 阅读 · 2 评论