ROS
我才睡醒
控制理论与控制工程专业毕业,对很多领域都知道一点,但是不怎么精通,写微博就是看看曾经给自己挖过多少坑
展开
-
MoveIt!规划场景
参考Planning Scene Tutorial 主要用到PlanningScene类。提供了碰撞检测和约束检测用到的主要接口。设置碰撞检测自我碰撞检测修改状态后的碰撞检测以组为单位的碰撞检测获取碰撞信息修改允许碰撞矩阵AllowedCollisionMatrix ACM全碰撞检测约束检查运动学约束检测用户定义的约束启动命令是执行结果设置原创 2018-01-29 16:54:37 · 1963 阅读 · 1 评论 -
为串联机械臂写一个ROS控制器
上一篇博客中,实现了gazebo中控制器的应用,但是由于PID调的不好,控制效果实在是不好意思贴出图来,作为一个控制理论与控制工程毕业的人,我怎么忍得了。今天就试着来编一编控制器。当然是参考了一些教程。12ROS中有一些标准的控制器,比如joint state, position, trajectory,这些在gazebo仿真中也用到了一部分。以下是控制器的工作流程 加载控制器后...原创 2018-02-06 13:56:17 · 5427 阅读 · 12 评论 -
ROS中的点云处理
使用点云库(Point Cloud Library, pcl)可以三维图像传感器的数据。这个开源库是独立的,但是可以在ROS中使用。pcl中提供了一系列函数来处理三维数据。本文使用一些常用的函数介绍一些简单的功能。简单的点云显示节点硬盘中加载并显示点云使用PCL方法解读点云图像寻找物体简单的点云显示节点pcl_utils包中包含了源文件display_ellips...原创 2018-02-24 16:49:48 · 20410 阅读 · 5 评论 -
ROS API 规划场景
参考:ROS API Planning Scene TutorialROS API广播所需要的话题定义附加对象消息添加对象到场景同步更新与异步更新将对象附着到机器人上从机器人解除附着对象将对象从碰撞环境中移除运行命令在世界环境中添加或移除对象为机器人附加或拆卸对象ROS APIROS API对规划场景发布消息是使用“diffs”通过一个话题原创 2018-01-30 15:31:46 · 1431 阅读 · 0 评论 -
ROS中使用Eigen库
——参考书《A Systematic Approach to Learning Robot Programming with ROS》 ROS中的数据操作需要线性代数,Eigen库是C++中的线性代数计算库。它独立于ROS,但是在ROS中可以使用。在CMakeLists.txt文件中要做以下配置#uncomment the following 4 lines to use the Eig...原创 2018-02-12 10:57:52 · 8506 阅读 · 3 评论 -
ROS中机器人的底层控制
一个自由度的平移关节机器人模型机器人的模型文件如下prismatic_1dof_robot_description_w_jnt_ctl<?xml version="1.0"?><robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="one_DOF_robot"><!-- Used ...原创 2018-02-28 21:47:28 · 11010 阅读 · 18 评论 -
ROS中机械手臂的运动规划
我是跳过了正逆运动学的内容,可以参考1。 机器人手臂的运动规划是一个很宽泛的领域,包含有寻多子问题。比如,人们可能会关注机器人可以执行的最佳轨迹,以在最短时间内从某个开始姿态到某个最终姿态,这受制于致动器工作和关节运动范围的限制。另一种变形是根据驱动器的机械特性对手臂运动进行规划,比如提重物最省力的运动规划。常见的问题是机器人的各个关节从一个初始位置运动到目标位置过程中的避障问题。要执行的任务可...原创 2018-03-14 08:42:28 · 13786 阅读 · 15 评论 -
ROS中的坐标变换
参考图书1简介坐标系通过三维空间中的一个点来定义,这个点p被称为坐标原点,从坐标原点延伸出来三个向量,n,t,b,分别对应局部坐标系中的x,y,z。向量轴是标准化的,并且符合右手定则:b=n×tb=n×tb=n \times t。 三个方向的坐标轴变换可以堆在一起,用3×33×33\times3的变换矩阵R表示坐标轴的旋转变换R=⎡⎣⎢⎢⎢nxnynztxtytzbxbybz⎤⎦⎥⎥...原创 2018-02-22 13:49:35 · 11842 阅读 · 1 评论 -
rviz中的标记(markers)和交互标记(interactive markers)
通过发布合适的话题可以在rviz的视图中显示合适的话题。可以在example_rviz_marker中查看例子example_rviz_marker.cpp。#include <ros/ros.h> #include <visualization_msgs/Marker.h> // need this for publishing markers#include...原创 2018-02-23 08:18:36 · 5220 阅读 · 1 评论 -
在ROS中使用相机
在机器人中经常使用相机,在导航或者抓取规划时需要解析相机数据,需要理解相机图像的模式和相关的标签以及坐标系。本文介绍ROS中相机坐标的变换、相机标定、使用OpenCV进行简单的图像处理。投影变换到相机坐标相机内部校准标定立体相机标定在ROS中使用OpenCV使用OpenCV寻找彩色像素点查找边缘投影变换到相机坐标将图像与空间坐标相关联的投影变换的必要步骤是...原创 2018-02-24 11:11:54 · 10648 阅读 · 17 评论 -
使用Baxter仿真器学习一下机械臂的控制
Baxter simulator由ReThink Robotics公司提供,是一个合理可靠的机器人模型。仿真器和实体机器人模型都有相同的ROS接口,所以在仿真器下开发的程序都可以在相应的实体机器人上快速部署。我准备使用Baxter模型和仿真器来练习正逆运动学、角空间规划、笛卡尔规划、运动伺服和抓取的执行。运行Baxter simulator使用以下命令开始仿真界面:rosl...原创 2018-03-19 16:14:57 · 8127 阅读 · 2 评论 -
MoveIt! 中的运动学模型
参考Kinematic Model TutorialRobotModel 与 RobotState类RobotModel 与 RobotState类是访问运动学的核心类。这个例子中我们使用PR2的右臂来走通使用这两个类的过程。开始设置初始化一个RobotModelLoader对象,它将在ROS参数服务器上查找机器人描述,并构建一个RobotModel供我们使用。ro原创 2018-01-29 15:16:19 · 2119 阅读 · 1 评论 -
MoveIt! 命令与命令行工具
参考MoveIt! Commander and Command Line Tool首先启动MoveIt! 仿真环境接口roslaunch pr2_moveit_config demo.launch初始化moveit_commander接口:rosrun moveit_commander moveit_commander_cmdline.py下面的命令能够开启命令行接口工原创 2018-01-29 11:19:50 · 1687 阅读 · 0 评论 -
MoveIt! demo的学习结果
有这两个的基础就可以完成下面的部分了: - MoveIt! Setup Assistant tutorial——MoveIt!设置助手 - MoveIt! Tutorials, MoveIt! 教程——demo 首先是各种头文件,主程序接口#include #include #include #include #include #include #include原创 2018-01-27 11:45:22 · 5505 阅读 · 24 评论 -
ROS MoveIt! 运动规划——
Motion Planners Tutorial 在MoveIt中使用插件基础结构加载运动规划器。这使得MoveIt! 可以在运行的时候加载运动规划器。开始原创 2018-01-31 08:01:35 · 3555 阅读 · 28 评论 -
ROS Kinetic 下的xtion的使用
安装依赖项执行:sudo apt-get install ros-kinetic-rgbd-launch ros-kinetic-openni2-camera ros-kinetic-openni2-launch进行测试打开操作台终端(Ctrl+Alt+t): 执行:roscore打开另一个操作台终端(Ctrl+Alt+t): 执行:roslaunc原创 2018-01-31 09:25:51 · 973 阅读 · 2 评论 -
遨博机器人ROS包aubo_robot 在kinetic版ROS下的编译
在github上发现遨博机器人支持ROS1,但是对应的版本是indigo的,我已经安了kinetic了,总不能为了体验一下,安装个旧的版本,于是我就硬编,出现了一大堆error,改着改着竟然改通了(当然要感谢小伙伴的帮忙啦),成功运行了gazebo的仿真例子。下面把出现的错误和改正方法记录下来,最后列出了改正后的包。Package ‘aubo_trajectory_filters” must原创 2018-01-24 13:23:51 · 6630 阅读 · 34 评论 -
LCM的安装与使用
LCM(Lightweight Communications and Marshalling)是一套用于消息传递和数据编组的库和工具,针对高带宽和低延迟至关重要的实时系统。 它提供了一个发布/订阅消息传递模型和自动编组/解组代码生成,并为各种编程语言的应用程序提供绑定。 目前版本是1.3.1,下载地址为:https://github.com/lcm-proj/lcm/releases 在Ubu原创 2018-01-24 20:23:20 · 15493 阅读 · 10 评论 -
Ubuntu16.04下ROS kinetic Eclipse IDE集成开发环境搭建
下载并安装Eclipse在Eclipse IDE中设置ROS的开发环境Eclipse IDE中的全局设置Eclipse IDE中的ROS编译脚本将ROS Catkin包添加到Eclipse中下载并安装EclipseEclipse需要Java Runtime Environment (JRE)环境,使用以下命令安装:sudo apt-get inst原创 2018-01-25 09:59:59 · 2280 阅读 · 4 评论 -
学习ROS Control
点此下载源码 参考网页:Tutorial: ROS Control 通过使用控制器驱动机器人的关节,为MoveIt!等规划器提供一个准确的ROS接口。将使用ros_control包。ros_control 与 Gazebo的数据流图在Gazebo中进行控制器的仿真,可以利用ros_control和简单的Gazebo插件来实现。各相关组件的关系参考下图 前期准备参考Us原创 2018-02-01 15:51:24 · 5014 阅读 · 2 评论 -
MoveIt! Tutorials, MoveIt! 教程——demo
MoveIt! Tutorials,gihub地址:https://github.com/ros-planning/moveit_tutorials/blob/kinetic-devel/index.rstBeginnerMoveIt RViz Plugin TutorialMove Group Interface TutorialDemo的解释Beginn原创 2018-01-25 16:44:35 · 12502 阅读 · 4 评论 -
MoveIt! Setup Assistant tutorial——MoveIt!设置助手
MoveIt! Setup Assistant tutorialStep 1 StartStep 2 计算碰撞矩阵自碰撞Step 3 添加虚拟关节Step 4 添加规划组planning groupStep 5 添加机器人位姿Step 6 标记末端执行器Step 7 添加被动运动关节Step 8 添加作者信息Step 9 生成配置文件接下来Step 1:原创 2018-01-26 14:30:48 · 3312 阅读 · 0 评论 -
URDF学习
在学习之前需要了解一下坐标系和坐标变换transform,tf的内容。一步一步的学习URDF用URDF从零开始构建一个机器人模型让机器人模型在rviz中可视化先建立一个简单的模型先建立一个包用来学习catkin_create_pkg myurdf controller_manager joint_state_controller robot_state_publis原创 2018-02-02 16:43:27 · 10107 阅读 · 8 评论 -
UR机器人和ROS-Industrial入门
Note1: 本文主要讲了ROS-Industrial节点与Universal Robots UR5 (controller CB3)的通信过程。此过程在UR5中进行测试,当应用在UR10中也采用相同的过程。准备工作综述实现步骤安装必要的软件配置硬件在ROS中描述机械臂与UR机器人进行通信使用MoveIt 操作硬件仿真学习分析ROS IndustrialROS-I2原创 2018-01-19 13:25:03 · 17984 阅读 · 5 评论 -
在gazebo中对机器人进行控制,并在rviz中同步显示
在上一篇博客中,我一步一步地建立了在gazebo仿真中能用的xacro文件。但是仿真时的模型是自由摆动的,文末的时候我想对他进行控制,但是篇幅太长,所以新开一篇。 参考ros_control的内容:http://blog.csdn.net/wxflamy/article/details/79228736先列出xacro文件:robot name="myfirstrobot" xmlns原创 2018-02-05 09:52:48 · 8889 阅读 · 12 评论 -
非线性优化库——NLopt
在trac_ik中用到->NLopt是一个用于非线性优化的免费/开放源代码库,为在线提供的许多不同的免费优化例程提供通用接口,以及各种其他算法的原始实现。 其功能包括:安装NLOPT :直接在终端 输入 :sudo apt-get install libnlopt.devinclude 文档参考https://nlopt.readthedocs.io/en/late...原创 2018-06-12 15:07:48 · 4478 阅读 · 4 评论