ROS机器人
文章平均质量分 93
蒋程扬
古月居签约作者,古月学院《如何开发一个ROS人机交互软件》原创作者。联系方式:chengyangkj@qq.com
展开
-
在Jetson Nano上实现单目相机 apritag_ros识别
教程主要是参考apriltag_ros官方git并根据自己实际使用的情况,作为笔记进行记录一,apritag_ros安装最开始采用克隆源码编译的方式进行安装,后来在Jetson nano上有opencv4与opencv3的依赖问题,后来索性直接采用二进制安装:sudo apt-get install ros-melodic-apriltag-ros二,单目相机标定安装标定包:sudo apt-get install ros-melodic-camera-calibration在终端输入原创 2022-04-30 11:34:53 · 1274 阅读 · 1 评论 -
ROS Windows 人机交互软件开发探索与总结二(在win10平板使用ROS人机交互软件)
ROS Windows人机交互软件开发及使用以上线古月学院,欢迎感兴趣的小伙伴订阅如何实现windows ROS人机交互软件win10 ROS安装之后将opt目录及vs2019目录拷贝到平板上即可,详细可参考视频教程原创 2020-12-12 15:44:53 · 3035 阅读 · 1 评论 -
ROS Qt5 librviz人机交互界面开发十三(显示话题列表)
本系列教程文章专栏:ROS机器人GUI程序开发本系列课程已上线古月学院,欢迎感兴趣的小伙伴订阅:ROS Qt开发环境搭建以及基础知识介绍ROS人机交互软件的界面开发ROS Rviz组件开发方法开发交流QQ群: 797497206完整项目代码:github文章目录一,实现效果二,核心API三,程序中调用一,实现效果可以显示多机/单机话题列表,就是在终端使用rostopic list查看话题列表的功能实现,主要参考文献:ROS WIKI二,核心API主要就是这么两句:ros:原创 2020-08-08 12:00:25 · 3708 阅读 · 3 评论 -
ROS Windows 人机交互软件开发探索与总结一(开发环境搭建及ROS Win10 Qt功能包的编译运行)
前言在ROS librviz 人机交互软件开发系列教程中我们实现了Ubuntu端的界面开发。但是很多小伙伴问到能不能在Windows上进行开发,当时回复是不能,主要就是库的依赖问题难解决。但是我想了想ROS是有windows版本的,并且也能运行rviz之类的,既然rviz都可以在windows上运行,就说明是有库可以支持的。于是本人又进行了一番探索与总结.本篇教程主要是介绍ROS Windows开发环境的搭建,ROS Windows基本的使用。以及在Windows中编译ROS Qt功能包。实现效果1转载 2020-07-27 16:09:42 · 3421 阅读 · 0 评论 -
解决ROS编译安装Opencv项目出现undefined Reference to....问题
一,问题描述已经编译安装了Opencv,但是编译Opencv功能包时出现undefined Reference to…的错误二,解决方法这一般是由于多个Opencv环境冲突的问题,比如我这里编译安装Opencv3.3.1版本则需要通过以下命令安装:unzip opencv-3.3.1.zip cd opencv-3.3.1mkdir buildcd buildcmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/loc原创 2020-07-10 13:52:32 · 7791 阅读 · 3 评论 -
ROS Qt5 librviz人机交互界面开发十二(订阅图像话题并在界面中显示)
这篇文章主要实现Qt中订阅Ros图像话题,并在界面中Label上显示一,实现效果二,添加依赖首先在功能包的CMakeLists.txt中添加依赖(ensor_msgscv_bridgeimage_transport)find_package(catkin REQUIRED COMPONENTS rviz roscpp sensor_msgs cv_bridge std_msgs image_transport )三,订阅话题 ros::NodeHandl原创 2020-05-12 10:56:35 · 5048 阅读 · 7 评论 -
ROS Qt5 librviz人机交互界面开发十一(显示机器人URDF模型)
一,实现效果二,核心代码和前面创建图层一样,通过manager_创建一个图层: rviz::Display* RobotModel_=NULL;//显示robotModel void QRviz::Display_RobotModel(bool enable) { if(RobotModel_==NULL) { RobotModel_=manager_->createDisplay("rviz/RobotModel","Qrviz Ro原创 2020-05-12 10:43:07 · 4388 阅读 · 8 评论 -
ROS多工作空间覆盖导致部分工作空间环境变量不生效问题
这个问题其实挺早就遇到过了,只是没有进行记录,这次在虚拟机中重新搭建环境再次遇到,于是记录下参考资料:添加链接描述1,问题描述明明在~/.bashrc文件下source了工作空间目录了,但是却在环境变量中找不到相关得包,甚至有时候catkin_make命令都找不到2,unset ros包环境通常情况下ROS包环境以及被污染,处理前需要在终端执行:unset ROS_PACKAGE_P...原创 2020-05-05 18:18:29 · 3349 阅读 · 5 评论 -
ROS Melodic使用乐视奥比中光深度摄像头
一,安装依赖sudo apt install ros-$ROS_DISTRO-rgbd-launch ros-$ROS_DISTRO-libuvc ros-$ROS_DISTRO-libuvc-camera ros-$ROS_DISTRO-libuvc-ros二,安装ros包kinetic版本可以直接使用apt安装:sudo apt-get install ros-$ROS_DISTRO...原创 2020-04-15 15:29:28 · 3204 阅读 · 4 评论 -
ROS Qt5 librviz人机交互界面开发十(实现定点返航功能)
这个功能实现起来也不难,主要就是先监听amcl_pose话题,获取小车在地图上的实时位置,如果点击设置返航点了则记下此位置,点击返航时则把该位置作为返航目标话题发送出去一,配置package.xml由于获得机器人位置的话题类型是geometry_msgs所以需要添加功能包对此话题的支持在package.xml文件添加如下两行: <build_depend>geometry_ms......原创 2020-04-13 20:42:28 · 2622 阅读 · 0 评论 -
ROS Qt5 librviz人机交互界面开发八(实现导航功能的完整显示)-全网首发
在上一篇教程我们已经实现导航的初始点和目标点的设置:ROS Qt5 librviz人机交互界面开发七(发布导航目标点和原点位置)-全网首发这一篇主要实现完整显示,在文章末尾有完整项目地址哦~一,显示效果设置初始点:设置目标点:二,核心代码如果看过前几篇博客,其实也就是添加几个图层:核心代码: //显示导航相关 void QRviz::Display_Navigate(bool......原创 2020-04-11 20:24:33 · 4313 阅读 · 1 评论 -
ROS Qt5 librviz人机交互界面开发七(发布导航目标点和原点位置)-全网首发
在前面几篇教程中我们已经实现了订阅map话题,这篇我们主要就是实现rviz中的设置目标点和初始点的功能一,实现效果:在地图上选点后librviz就会自动进行变换,发布目标点信息实现如下:可以发现控制台提示已经发布了位置点话题:在下一篇博客继续实现完整导航功能二,核心代码其实核心代码也就两三句,但是目前网上关于librviz的资料少之又少,连官方都没有api说明,只有最简单的一个de......原创 2020-04-11 09:51:10 · 4747 阅读 · 20 评论 -
ROS Qt5 librviz人机交互界面开发六(显示激光雷达点云数据)
最终显示效果:如果按照本人前几篇博客的话进程的话,就很容易实现这个功能了,主要就是用manager添加一个display:核心代码://显示激光雷达void QRviz::Display_LaserScan(bool enable,QString topic){ if(laser_==NULL) { laser_=manager_->createDi...原创 2020-04-08 19:54:10 · 4572 阅读 · 2 评论 -
ROS Qt5 librviz人机交互界面开发五(订阅map话题)
这一篇教程在教程四的基础上进行修改,修改了部分bug,实现了map图层的添加,显示,放大,缩小等:qrviz.h#ifndef QRVIZ_H#define QRVIZ_H#include <QVBoxLayout>#include <rviz/visualization_manager.h>#include <rviz/render_panel.h&g...原创 2020-04-08 12:26:05 · 4350 阅读 · 13 评论 -
Ros机器人Rviz Qt5插件开发(1)——机器人速度控制插件开发
一,创建功能包在工作空间src目录下:catkin_create_pkg cmd_control roscpp rviz std_msgs二,配置功能包2.1添加类到功能包src目录:2.2添加plugin描述文件plugin_description.xml到功能包根目录: <library path="lib/cmd_control"> <clas...原创 2020-04-06 12:31:45 · 5250 阅读 · 5 评论 -
ROS Qt5 librviz人机交互界面开发四(添加rviz显示界面)
创建librviz界面类:qrviz_widget.h#ifndef QRVIZ_WIDGET_H#define QRVIZ_WIDGET_H#include <QWidget>#include <rviz/visualization_manager.h>#include <rviz/render_panel.h>#include <rvi...原创 2020-04-05 15:26:07 · 18420 阅读 · 23 评论 -
ROS Qt5 librviz人机交互界面开发三(实现控制机器人速度与方向)
我这里主要就是参考teleop_twist_keyboard项目的源代码,移植到自己程序一,首先在ui界面添加按钮(注意按钮上显示的文字):同时在ui界面设置每个按钮的shortcut,就能实现键盘控制:二,关联这些按钮的点击事件到同一槽函数 //绑定速度控制按钮 connect(ui.pushButton_i,SIGNAL(clicked()),this,SLOT(slot_c......原创 2020-04-05 10:56:11 · 7973 阅读 · 14 评论 -
ROS Qt5 librviz人机交互界面开发一(配置QT环境)
一,首先安装ros对qt pkg的支持sudo apt-get install ros-melodic-qt-createsudo apt-get install ros-melodic-qt-build这样就能通过:catkin_create_qt_pkg命令创建ros gui包了:在src目录下创建包:catkin_create_qt_pkg qt_ros_test二,安装......原创 2020-03-28 16:59:21 · 26934 阅读 · 87 评论 -
catkin_create_qt_pkg:未找到命令
以下两行命令解决(注意换为自己的版本号):sudo apt-get install ros-melodic-qt-createsudo apt-get install ros-melodic-qt-build完美解决:原创 2020-03-28 12:10:32 · 3245 阅读 · 5 评论 -
qt安装ROS环境
下载qt_ros离线安装包网址https://qtcreator-ros.datasys.swri.edu/downloads/installers/选择文件Ubuntu 18.04.2 LTS (Bionic Beaver)Ubuntu 16.04.6 LTS (Xenial Xerus)Ubuntu 14.04.5 LTS (Trusty Tahr)根据系统版本选择相应的目录下...原创 2020-02-23 21:39:08 · 1169 阅读 · 0 评论 -
解决linux在ssh使用~/.bashrc环境变量都需要重新source
在~/.bashrc里写好了相应环境,在桌面登陆可以直接使用,但ssh每次都需要source下,解决方法:vim ~/.bash_profile在文件内部输入 # 加载.bashrc文件if test -f .bashrc ; thensource .bashrc fi...原创 2020-02-20 23:07:10 · 1782 阅读 · 0 评论 -
pid参数设置要点即口诀
一种通俗易懂的讲解控制模型:你控制一个人让他以PID控制的方式走110步后停下。(1)P比例控制,就是让他走110步,他按照一定的步伐走到一百零几步(如108步)或100多步(如112步)就停了。说明:P比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。(2)PI积分控制,就是他按照一定的...转载 2020-02-15 15:05:50 · 1836 阅读 · 0 评论 -
ros开机启动roscore及launch文件
一,开机自运行roscore命令一,书写autoLoad.shsudo nano roscore.sh写下下面内容:#! /bin/bash #将系统的ros环境变量加入source /opt/ros/indigo/setup.bashroscore在有桌面环境的终端运行下面命令:gnome-session-properties点击Add添加:名称随意commd写:b...原创 2020-02-05 20:19:38 · 6260 阅读 · 0 评论 -
Could NOT find rosserial_arduino解决方法
在ros melodic上使用ros_arduino编译时报错安装这个包即可:ros melodic版本:sudo apt-get install ros-melodic-rosserial-arduinoros kinetic版本:sudo apt-get install ros-kinetic-rosserial-arduino...原创 2020-01-30 12:19:50 · 805 阅读 · 0 评论 -
ROS机器人,ROS_Arduino_bridge实现两个马达PID控制,控制机器人走直线
官方提供的ROS_arduino_bridge是利用一套PID控制两个马达,但是由于马达问题,机器人不能走直线,因此就需要对两个马达进行单独的PID控制,本文修改ROS_Arduino_bridge以实现两路PID控制1.首先修改arduino代码a.修改diff_controller.h文件增加左右两个马达的PID控制变量:/* PID Parameters */int Kp = 20...转载 2019-11-15 22:37:22 · 3021 阅读 · 3 评论 -
RoboWare配置远程编译踩坑,提示找不到catkin_make,catkin_init_workspace等命令
远程登陆用户使用catkin_make明明能找到命令,但是配置好roboware后却提示找不到这个命令,这是由于配置时配置的为sudo nano ~/.bashrc这个目录的环境变量,只能为当前用户使用,不能为所有用户使用,因此识别不到,所以切换到超级用户,更改所有用户的环境变量:sido nano /etc/profile添加ros命令:source /opt/ros/kinet...原创 2019-11-06 13:08:04 · 2028 阅读 · 0 评论 -
ROS机器人011-URDF机器人建模
一,什么是URDF二,各种标签1,link2,joint3,robot三,创建一个机器人建模功能包1,在工作空间src目录下打开终端,输入:catkin_create_pkg mbot_description urdf xacro2,目录结构创建相对应的文件夹3,写配置文件在config 下书写rviz配置文件mbot_urdf.rvizPanels:...原创 2019-07-16 11:20:47 · 489 阅读 · 0 评论 -
ROS机器人010-launch文件
一,为什么需要launch文件当我们去完成一个机器人时,有很多结点,而且去实现一个功能可能由多个结点去完成,此时我们需要在终端去一个个启动结点,这样效率非常低下,因此提出了launch文件,一次可以启动多个结点二,相关标签1,launch2,node注意 name属性如果设置的和编程里面的结点名称不一样,此时这里的name会覆盖最开始设置的结点名称3,param4,rospa...原创 2019-07-16 09:55:37 · 206 阅读 · 0 评论 -
ROS机器人005-ROS通信编程(服务编程)
一,基本步骤和话题通讯的步骤基本一样:二,服务端环境构造这路我们实现客户端给服务端发送两个数字,服务端相加得结果发给客户端1,定义srv文件在功能包目录下创建srv目录在目录下创建srv文件:写文件内容:其中三个横杠---前面的代表客户端请求的数据,后面的代表服务端要发送给客户端的应答数据int64 aint64 b---int64 sum2,在package....原创 2019-07-10 19:11:00 · 332 阅读 · 0 评论 -
ROS机器人004-ROS通信编程(话题编程,自定义话题消息)
一,ROS通讯编程类型分为以下三种:1,话题编程2,服务编程3,动作编程二,话题编程三,创建发布者在功能包learn_communication/src/目录下添加talker.cpp文件:1,添加头文件//添加ROS包#include "ros/ros.h"//添加ROS string变量#include "std_msgs/String.h"2 Ros结点初始...原创 2019-07-10 13:45:01 · 609 阅读 · 0 评论 -
ROS机器人003-ROS基础(创建工作空间,编译工作空间,创建功能包)
这里来介绍ROS的一些基础一,创建工作空间在 工作空间里存放工程开发相关文件的文件夹1,创建工作空间文件夹#创建文件夹sudo mkdir -p catkin_ws/src#更改文件夹权限sudo chmod +777 -R catkin_ws/#进入文件夹cd catkin_ws/src/catkin_init_workspace 2,编译工作空间cd catkin_...原创 2019-07-10 10:59:54 · 300 阅读 · 0 评论 -
ROS机器人002-第一个ROS列程(小海龟仿真)及基本操作
一,启动ROS Master打开terminalroscore二,启动小海龟仿真器打开第二个终端rosrun 应用名 结点名rosrun turtlesim turtlesim_node三,启动海龟控制结点打开第三个终端rosrun turtlesim turtle_teleop_key可以根据键盘控制小海龟移动方向四,ROS一些基本操作1,查看当前的计算图...原创 2019-06-20 22:12:04 · 1081 阅读 · 0 评论 -
ROS机器人009-tf坐标变换
tf坐标变换tf坐标变换原创 2019-07-18 16:42:46 · 574 阅读 · 0 评论 -
ROS机器人006-ROS通信编程(动作编程)
一,什么是动作编程前面我们已经学习了服务编程和信息编程,服务编程主要是客户端提交给服务器数据,服务器处理数据后返回给客户端,动作编程也是有服务端和客户端,但是是应答式的服务,客户端提交动作,服务端进行完成,并实时报告进度.二,定义自定义动作消息1,定义action文件同样也是用三横杠分割,这里为两个三横杠第一个为:动作的目标信息(ID)第二个为:动作的结果信息(是否完成)第三个为...原创 2019-07-12 14:13:38 · 801 阅读 · 0 评论 -
ROS机器人012-URDF建模优化(xacro模型文件) Solidworks三维建模
一,URDF建模存在哪些问题代码量太大,完全不符合ROS的目标因此提出了xacro优化二,xacro优点三,新增标签我们可以发现同urdf相比新增了许多标签1,定义常量:2,实现数学计算:3,宏定义比如机器人的轮子,模型一样,只是坐标值不同,因此我们可以宏定义一个轮子然后去调用4,可以包含其他模型文件,并显示模型四,模型显示五,SolidworksSoli...原创 2019-07-16 17:45:33 · 757 阅读 · 0 评论 -
ROOS机器人007-ROS开发IDE ROBOWARE的安装及使用
在前面我们学习过程中编写代码和编译程序的时候都是通过手敲,但是效率太慢了,因此我在网上发现一个ROS开发IDE:Roboware一,Ubuntu上下载和安装在github上可以进行下载:下载链接或者百度搜索官网下载,但是官网好像被墙了,进不去点击下载好的安装包,即可进行安装:把ROS添加到环境变量后,打开软件就会自动识别:1、为了支持Python调试功能,需要安装pylint:...原创 2019-07-12 16:08:34 · 378 阅读 · 0 评论 -
ROS多机通讯踩坑,(主机和从机之间可以订阅话题,但是看不到话题消息)
在进行ROS分布式通讯的时候,已经设置好HOST 而且指定master地址在树莓派上能够使用rostopic list 查看话题列表,但是,监听话题时rostopic echo /chatter没有内容查阅相关资料,我发现我出现如下错误:1,在主机设置从机的host信息(非常重要 名字不能乱改)host文件作用:系统会先检查自己的Hosts文件中是否有这个地址映射关系,如果有则调用这个...原创 2019-08-02 16:03:15 · 15735 阅读 · 8 评论 -
树莓派更换ROS源解决 Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?问题
安装ROS包时:经过分析应该是ROS软件包的源在国外,更换为国内就好了:sudo nano /etc/apt/sources.list.d/ros-latest.list替换原来的源:deb https://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main再apt-get update apt-get upgrade就行了...原创 2019-07-30 15:04:47 · 2820 阅读 · 0 评论 -
rosserial arduino的安装及使用(ROS控制arduino,arduino创建ROS结点)
一,简介这个教程展示如何安装arduino IDE和使用rosserialArduino和Arduino IDE是进行硬件开发的非常好的辅助工具rosserial_arduino包可让ROS和ArduinoIDE一起工作rosserial提供的ROS通讯协议工作在Arduino的UART上,它让Arduino成为标准的ROS节-点,可以发布和订阅ROS消息,发布TF转换,获...原创 2019-07-30 21:36:26 · 7584 阅读 · 15 评论 -
ROS使用roboware创建工作空间,编译结点后在终端找不到编译的结点的问题
这是因为新生成的工作空间结点的 devl/serup.bash文件没有添加到环境变量:我们可以使用echo $ROS_PACKAGE_PATH查看在环境变量中的ROS:发现只有ROS官方默认的,这时候我们使用: source /home/autolabor/robot_ws/devel/setup.bash设置环境变量,注意其中的路径要根据自己工作空间的实际进去设置:添加之后再次查看...原创 2019-08-01 18:05:38 · 1269 阅读 · 0 评论