ROS的那些坑
文章平均质量分 82
ROS的那些很麻烦的坑
跃动的风
离开机器人行业了,随缘解答各种问题~
展开
-
Realsense、kinect在ROS环境下的骨骼识别(基于NuiTrack)
在弄不明白ROS Kinectic之后的openNI之后终于还是向Nuitrack骨骼识别屈服了:那么先看看NuiTrack是啥:https://nuitrack.com/虽然很好用但是很遗憾的是他是收费的:-试验用的话推荐买Onlline版本的,39.99$。(啊我好心痛,有人和我一起分担一下的不)那么下面开始正文了,让我们一起在ROS Kinect下配置骨骼识别:1、NuiT...原创 2020-03-27 19:36:36 · 4013 阅读 · 39 评论 -
写一个组合的机器人硬件接口(ComboRobotHW)
ComboRobotHW是一个允许将多个RobotHW组合成一个“RobotHW”的软件包。任何控制器现在都看到所有提供的所有RobotHW关节都是一个RobotHW的关节。这背后的机制是特殊的所谓的类加载器(pluginlib)。控制器管理器(controller manager )后面的系统相同,因此ComboRobotHW是某种RobotHW管理器。编写机器人后,可以使用一个控制器管理...原创 2019-04-08 19:13:07 · 1561 阅读 · 0 评论 -
ros_control从入门到放弃:写一个机械臂的硬件接口,并与moveit进行对接控制(附机械臂例子)
在创建自己的机械臂的时候需要一个动作服务器controller和RobotHW与moveit进行对接,如下图,而幸运的是这些都已经被写好了框架,下面就来看看原理与实现吧。参考:http://wiki.ros.org/ros_controlhttps://github.com/ros-controls/ros_control/wikihardware_interface::RobotHW C...原创 2019-04-08 20:31:31 · 10889 阅读 · 27 评论 -
ROS实时控制:realtime_tools/realtime_publisher
来源:http://wiki.ros.org/realtime_tools在进行机械臂的实时控制时,为了尽可能的保证话题的实时性,我们使用官方的realtime_tools。下面看看官方说明:此包包含一组可以在硬实时线程中使用的工具,而不会破坏实时行为。 这些工具目前仅提供realtime publisher,这使得它可以从实时线程向ROS主题发布消息。realtime_tools :...原创 2019-04-09 09:50:36 · 4433 阅读 · 0 评论 -
moveit控制关节运动:moveit_commander
最近做的机械臂在moveit中不知道什么原因没法用interactive marker去拖拽,大概是我是4自由度机械臂的原因?所以想单独测试一下控制每个关节动,看看有没有快捷的方法就找到了这个:http://docs.ros.org/kinetic/api/moveit_tutorials/html/doc/moveit_commander_scripting/moveit_commander...原创 2019-04-20 17:34:18 · 3549 阅读 · 2 评论 -
joint_model.h:47:26: fatal error: Eigen/Geometry: 没有那个文件-解决方法
在做机械臂ros中规划的时候遇到了这个问题:/opt/ros/kinetic/include/moveit/robot_model/joint_model.h:47:26: fatal error: Eigen/Geometry: 没有那个文件或目录compilation terminated.解决方法共两步:在CMakeLists中的find_package中加入:moveit_ro...原创 2019-05-09 09:41:59 · 1608 阅读 · 0 评论 -
Error: no Kinect2 devices found!解决方法
在启动iai-kinect的时候发现因为没有权限无法找到设备:Error: no Kinect2 devices found!解决方法:复制90-kinect2.rules 到/etc/udev/rules.d/,然后加载一下规则sudo udevadm control --reload,之后重启插一下kinect2,若还不行就重启一下电脑。90-kinect2.rules在libfree...原创 2019-05-10 12:55:55 · 2265 阅读 · 0 评论 -
Kinect V2的urdf/xacro模型
在使用kinect v2传感器时,我发现我找不到一个完美的kinect v2 urdf模型。所以我做了这个模型,希望这会对你有所帮助。[https://github.com/wangxian4423/kinect_v2_udrf](To use in rviz:roslaunch kinect_...原创 2019-05-07 22:29:06 · 1233 阅读 · 6 评论 -
一起做ROS-DEMO系列(1):控制移动机器人自主导航并停到标签(AR Marker)之前
在观看某机器人的视频时,我们看到了这样一个场景:可以看到机器人在检测到物体的标签后,自主导航至物体之前,并对标签物体进行抓取。那么接下来我想以自己的一个demo个大家分解一下这个任务在ROS下的实现方式。文末有完整代码。文章目录1. 通过AR Tracker识别标签。2. 将标签的坐标转换到地图(Map)坐标系下,并加入偏移。3.发送坐标,控制机器人自主导航至目标位置点。4. 记录一...原创 2019-06-13 12:20:55 · 5425 阅读 · 16 评论 -
ros修改map_server地图发布的map关联的坐标系frame_id(多机器人联合建图用)
在进行多机器人联合建图的时候,遇到了map的坐标系问题如下:map_server发布的/map话题包含了frame坐标系关联,想要正确的让多个机器人共同建图导航需要修改/map话题以及其绑定的frame坐标系,防止机器人之间的相互冲突下面是修改方法:<group ns="myrobot"> <node name="map_server" pkg="map_server" ...原创 2019-06-25 11:14:06 · 5447 阅读 · 0 评论 -
一起做ROS-DEMO系列 (2):基于find_object_2d的目标模板匹配识别
这次我会讲一讲基于彩色图像的模板匹配,目前ROS上现有的find_object_2d功能包能够让我们轻松上手操作1、find_object_2d 功能包安装2、功能包的可视化使用2.1 、find_object_2d2.2 、find_object_3d3、具体使用3.1 调整参数,选择特征算子及算法3.2 选择匹配的对象,进行匹配3.3 查阅相关的话题3.3.1 节点接收的话题3.3.2 节点发布的话题3.3 保存匹配的模板及配置文件4、将识别的坐标点发送给机械臂5、功能包效果评价原创 2019-06-26 11:22:06 · 6247 阅读 · 29 评论 -
一起做ROS-DEMO系列 (3):写一个简易的基于标签识别的云台、手臂跟踪
最近做了一个在MOVO机器人上实现的demo,即基于标签识别让头部与机械臂去自动跟踪到标签对应的位置,发现在摄像头视角看到标签不断跟踪标签使其保持在正中央还是挺有意思的。下文给出了具体实现方法及代码原创 2019-07-21 12:39:17 · 2032 阅读 · 1 评论 -
ROS:二维坐标映射到三维坐标上(彩色与深度图像匹配)(基于深度相机D415)
最近在用D435做物体识别抓取的时候发现二维坐标到三维坐标没有一个直接能用的从二维像素点坐标转换到三维坐标的ROS节点,自己之前写过的kinect V2的坐标映射的通用性太差,所以这次写了一个节点,利用深度相机ROS节点发布的深度与彩色对齐的图像话题和图像信息内外参话题,将二维坐标映射到三维坐标系。我挂上来的这个节点是将鼠标指向的二维坐标转换到三维坐标系下,并发布话题可视化到了rviz中,因为...原创 2019-07-31 23:00:02 · 8714 阅读 · 60 评论 -
(转)TEB Local Planner的特性与参数调试技巧总结
本文转自 https://www.knightdusk.cn/2019/06/features-and-tuning-guide-for-teb-local-planner/高手zxy的技术小站(做个备份记录)本文将介绍ROS导航中的局部规划器TEB Local Planner在实际车辆上的应用条件和参数调试方法。同时我们也将会讨论与之相关的局部耗费地图(local costmap)和耗费...转载 2019-08-06 13:53:25 · 15077 阅读 · 13 评论 -
ROS传输图像带宽不够用的解决方法(realsenseD415压缩图像)
最近在做图像的深度学习识别,但是移动机器人上的电脑配置不够,只能用我的电脑远程的去处理图像,但是遇到了严重的带宽瓶颈,按照我的电脑150Mbps的无线网卡来算,每秒的极限传输速度就是150/8 = 18.75Mb/s,而实际上在多人占用一个垃圾路由器的限制下我监控到的速度只有2M/s,导致传输图像速度远远不够,因为realsense一张彩色图像(640*480)以30fps发送的带宽就有几十MB...原创 2019-08-09 10:00:01 · 8722 阅读 · 9 评论 -
gazebo仿真——controller配置(transmission/hardwareInterface标签)
参考roswiki controller官方说明本文作为古月大神的补充ROS探索总结(三十一)——ros_control为了在gazebo中实现机器人关节的控制,需要求建立一个controller控制器,首先需要在urdf中加入transmission标签如下:<transmission name="simple_trans"> <type>transmiss...原创 2019-03-22 15:09:14 · 5191 阅读 · 0 评论 -
Kinova_MOVO机器人基本操作及机械臂倒水demo实现
Kinova MOVO官网Kinova参数页1、MOVO安装教程参考自movo-github-wikiMOVO开发硬件需求官方只支持Ubuntu 14.04 Trusty, x64 platform (core i5, core i7), 8GB RAM原创 2019-03-21 20:22:14 · 2747 阅读 · 0 评论 -
Ros中Remap(话题重映射)的两种使用方法(这个真的是折磨我好久的一个坑啊)
remap应该在节点前使用原创 2019-03-13 12:11:33 · 14545 阅读 · 13 评论 -
Couldn't find executable named joy_node below /opt/ros/kinetic/share/joy解决方法
最近想用joy_node这个节点,然后就通过sudo apt-get install ros-kinetic-joy去安装,然后运行rosrun joy joy_node时候一直错误显示Segmentation Fault,就纠结了很久,和github的文件比对后发现有文件缺失,于是用sudo apt-get remove ros-kinetic-joy把他卸了,重新安装一遍,...原创 2018-10-07 10:42:59 · 6915 阅读 · 10 评论 -
在ROS中调用外部链接库文件(.so)配置方法
举例说明吧:1、建立文件树如下:myproject:-include--Interface.h-lib--libInterface.so-src--control.cpp-CMakeLists.txt-package.xml即在对应的源文件包下建立两个文件夹include(放.so对应的头文件),lib(放.so文件) 2、然后配置CMakeList...原创 2018-10-22 14:47:12 · 6343 阅读 · 2 评论 -
解决cannot launch node of type [robot_state_publisher/robot_state_publisher]: robot_state_publish
问题显示如下:ERROR: cannot launch node of type [robot_state_publisher/robot_state_publisher]: robot_state_publisherROS path [0]=/opt/ros/kinetic/share/rosROS path [1]=/home/wxw/catkin_ws/srcROS path [2...原创 2018-10-31 19:12:08 · 18381 阅读 · 19 评论 -
ROS中调用动作服务器所使用的message名称问题
今天碰到个问题,在建立action client的时候,始终提示一个错误程序(正确的):#include <ros/ros.h>#include <actionlib/client/simple_action_client.h>#include <control_msgs/GripperCommandAction.h>#include <...原创 2018-11-26 22:12:54 · 542 阅读 · 0 评论 -
通过c++接口调用Moveit进行编程
整理一下现在的资料:使用Moveit的接口首先要注意一下你的ros版本(即Moveit 版本)以下是move group c++ interface的官方说明:ROS Melodic:https://ros-planning.github.io/moveit_tutorials/doc/move_group_interface/move_group_interface_tutori...原创 2018-11-26 22:49:38 · 4173 阅读 · 0 评论 -
学习笔记:记录下如何在moveit的c++程序中使用srdf中的group state
对于已经在srdf中保存的位置信息,要怎么在c++中调用呢?srdf中坐标信息如下: <group_state name="homed" group="upper_body"> <joint name="left_arm_half_joint" value="0.15" /> <joint name="lef原创 2018-11-27 20:49:20 · 504 阅读 · 0 评论 -
ros::actionlib动作服务器(action server)在动作客户端(action client)中的调用
先上个大致的参考例程,再详细讲各个函数。#include <ros/ros.h>#include <actionlib/client/simple_action_client.h>#include <control_msgs/GripperCommandAction.h>#include <control_msgs/GripperCommand...原创 2018-12-10 12:40:54 · 5019 阅读 · 2 评论 -
invalid use of non-static member function:ROS 初始化subscriber时问题的解决
MoveBase_cmd_vel_sub = node_handle.subscribe( "/movebase_cmd_vel", 60, DHRobotBase::moveBase_cmd_vel); // 订阅 topic在使用这句话时出现这个问题:error: invalid use of non-static member function "/movebase...原创 2018-12-29 15:18:13 · 2971 阅读 · 0 评论 -
多机器人在ros下的launch启动文件配置
1、示例程序:最近在做6个han's cute机器人的协同控制,在这里记录一下roslaunch的配置技巧。先上代码和分行解释:<launch> <arg name="cute_robot_1" default="true"/> <!--定义一个开关变量,用于是否启动对应机器人 --> <arg name="cute_r...原创 2019-01-26 11:26:36 · 2055 阅读 · 9 评论 -
ubuntu16安装kinect2及ros和cuda配置时的一些错误解决
前一段重装系统,今天又安装kinect 2发现出了很多错误,记录一下。首先下载kinect2的sdk。https://github.com/OpenKinect/libfreenect2具体操作按照上面的网页中进行安装,libfreenect2如下载失败使用windows系统下载或在采用某种科学的方法。坑1:注意此处要先安装一系列依赖以及opencl(想用ros必须),...原创 2019-02-23 13:21:39 · 1881 阅读 · 6 评论 -
ros接收图像并通过opencv显示,以kinect为例
通过imagetransport传输信息,而不是通常的topic传递方法。image_transport应该始终用于订阅和发布图像。它为以低带宽压缩格式传输图像提供了支持。#include <ros/ros.h>#include <image_transport/image_transport.h>#include <opencv2/highgui/h...原创 2019-02-27 11:03:10 · 2375 阅读 · 4 评论 -
ROS中quaternion四元数和RPY欧拉角转换
在移动小车导航中,ros系统通常使用四元数表示里程计orientation信息,但是很多时候需要rpy表示更加直观方便,因此在这里记录一下转换方法。#include "tf/transform_datatypes.h"//转换函数头文件#include <nav_msgs/Odometry.h>//里程计信息格式/****************四元数转RPY欧拉角,以o...原创 2019-02-27 11:19:34 · 21178 阅读 · 2 评论 -
DHZT_ROS_Developer_Guide 大华中天ROS风格指南
DHZT_ROS_Developer_Guide 大华中天ROS风格指南0. 前言0.1 版本1.0版本(2019.3.12):本文档参考了 ROS 官方风格指南及晓萌团队开发指南,并进行了一定程度的扩充。团队成员应该尽量按照 ROS 基本的开发风格以及适用于本项目组的特定规则进行代码开发。如果有细节不统一的地方或者对本文档某处不是很认同,请在组内讨论统一之后,修改本指南。0.2 背景...原创 2019-03-12 14:45:25 · 673 阅读 · 0 评论 -
Robotican-LIZI机器人基本操作教程
1. LIZI的基本参数参考LIZI官网。2. LIZI的基础使用启动顺序:(1)按电源开关打开电源。(2)按PC开关,松开后等待3-5s,之后机器人会自检它的系统。作为自检的一部分,LIZI可能会轻微的旋转车轮。注意,在启动过程中PC按钮会闪烁蓝光。如果发生错误,则会闪烁红光。(3)连接HDMI显示器及USB外设,通过ctrl+alt+T调出终端,执行此命令 roslaunch...原创 2019-03-21 11:25:03 · 744 阅读 · 0 评论 -
Han‘s Cute(cyton-300)机器人基本操作教程及多机器人启动方式
1安装等基本操作本文件夹中包含了多个为Cute机器人提供ROS支持的软件包。推荐的运行环境为 Ubuntu 16.04 + ROS Kinetic 或 Ubuntu 14.04 + ROS Indigo,其他环境下的运行情况没有测试过。安装软件包Ubuntu 16.04 + ROS Kinetic安装一些重要的依赖包$ sudo apt-get install ros-kinetic-...原创 2019-03-21 12:58:19 · 2293 阅读 · 3 评论 -
分享一个ubuntu14.04和16.04下的用于ROS开发的IDE开发工具吧
官网已经打不开了,可以来我这下载https://download.csdn.net/download/qq_23670601/11610974,有deb安装包和使用手册,CSDN没办法设置0积分资源,如果你没有积分的话可以私我要。真的是ros开发很好用的工具。官网如下:一个安装包就解决了。http://cn.roboware.me/#/Home界面看图:一站式管理文件树和代码节点,下方...原创 2018-08-02 08:26:15 · 2217 阅读 · 0 评论