ROS
文章平均质量分 55
火星机器人life
热爱多传感器融合slam、机器人、人工智能相关技术。立志于让机器人更智能,为人类移民火星做铺垫。让科技使生活更幸福,让科技改变世界。
展开
-
(一)ROS中新建机器人模型(urdf格式)并用rviz显示
在机器人操作系统(ROS)中,经常需要模拟机器人运动,那么首先需要新建一个机器人。 创建简单的机器人模型的步骤如下: (1)创建硬件描述包 (2)建立urdf文件 (3)建立launch命令文件 (4)效果演示详细步骤如下: (1)在工作区创建硬件描述包,使用如下命令roscreate-pkg smartcar_description urdf (2)新建模型的描述文件smartc原创 2017-03-22 10:25:59 · 28420 阅读 · 16 评论 -
ROS多机器人通信
ROS设计的灵魂就在于其分布式计算。一个优秀的节点不需要考虑在哪台机器上运行,它允许实时分配计算量以最大化的利用系统资源。(有一个特例——驱动节点必须运行在跟硬件设备有物理连接的机器上)。在多个机器人上使用ROS是一件很简单的事,你只需要记住一下几点: 1.你只需要一个master,只要在一个机器上运行它就可以了。 所有节点都必须通过配置 ROS_MASTER_URI连接到同一个master。原创 2017-09-27 09:06:37 · 3902 阅读 · 1 评论 -
(十一)在ROS上发布点云 PointClouds
在ros中,对于3D点,可以直接给sensor_msgs/PointCloud 赋值并发布消息,比较方便。1.创建工程mkdir -p pointcloud/srccd srccatkin_create_pkg pointcloud roscpp rospy sensor_msgs std_msgs cd ..catkin_make2.编辑主函数pointcloud.cpp#include原创 2017-10-01 09:45:06 · 10004 阅读 · 4 评论 -
ROS常用命令
1.rosrun 运行程序 2.roslaunch 运行脚本 如 roslaunch rbx1 fake_pi_robot.launch 3.查看ROS_PACKAGE_PATH环境变量 echo $ROS_PACKAGE_PATH 4.获得运行中节点清单 rosnode list 5.显示节点的主题 rostopic list 6.显示节点的服务 rosservice list 7....原创 2017-03-23 16:58:16 · 3123 阅读 · 0 评论 -
ROS调试
1.输出调试信息 ROS自带了大量的能够输出调试信息的函数和宏,包括错误,警告等.它提供了如信息级别,条件触发消息和STL的流接口等方式. 直接上例子,新建catkin工程#include <ros/ros.h>#include <ros/console.h>int main( int argc, char **argv ){ ros::init( argc, argv, "rosdeb原创 2017-10-14 17:34:12 · 8886 阅读 · 3 评论 -
(十三)ROS发布者和订阅者
参考http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber(c++) 本文实现发布者和订阅者,发布者发布信息,信息的内容是编号, 订阅者订阅发布者消息,并将解析出来的编号保存为文件. 直接上代码1.发布者新建发布者节点2.订阅者原创 2017-11-10 17:28:38 · 1761 阅读 · 0 评论 -
ROS中MRPT安装和使用
参考https://www.mrpt.org/MRPT_in_GNU/Linux_repositories http://wiki.ros.org/mrpt_navigation/Tutorials/Installing ubantu14.04LTS用apt-get安装mrpt如下:sudo add-apt-repository ppa:joseluisblancoc/mrpt-1.5s...原创 2018-03-20 16:36:53 · 4008 阅读 · 1 评论 -
(十二)ROS在rviz中的不同位置显示文字(visualization_msgs::MarkerArray的使用)
本文实现在rviz中指定位置显示文字1.在特定地方显示一行文字#include &amp;lt;ros/ros.h&amp;gt;#include &amp;lt;visualization_msgs/Marker.h&amp;gt;#include&amp;lt;iostream&amp;gt;using namespace std;int main( int argc, char** argv原创 2018-05-28 16:12:35 · 16711 阅读 · 15 评论 -
(六)turtlebot3中slam代码位置和理论参考书籍论文
1.建图1.1代码建图启动按照如下命令 roslaunch turtlebot3_slam turtlebot3_slam.launch1.2参考书籍2.导航2.1代码2.2参考书籍3.控制3.1代码3.2参考书籍...原创 2018-07-16 14:38:23 · 1437 阅读 · 0 评论 -
ros画图工具rxplot的使用
按照以下程序发送消息,#include <ros/ros.h>#include <ros/console.h>#include <std_msgs/Int32.h>#include <geometry_msgs/Vector3.h>#include<iostream>using namespace std;int m...原创 2018-07-05 15:05:59 · 5507 阅读 · 1 评论 -
ERROR: Cannot load message class for [dbw_mkz_msgs/WheelSpeedReport]. Are your messages built?
别人录制的rosbag包在他的电脑上可以用rostopic echo 输出数据,而在我的电脑上不行?为什么呢?原因是因为他的电脑上安装了定义了dbw_mkz_msgs消息的ros包,而我的电脑上没有安装。解决方法:安装dbw_mkz_msgs相关的包。sudo apt-get install ros-kinetic-dbw-mkz通用解决方法sudo apt-get install ...原创 2018-12-26 10:08:25 · 2359 阅读 · 0 评论 -
ROS中显示坐标系
1.在ros中显示坐标系问题1:假设世界坐标系原点表示为(x,y,z,roll,pitch,yaw)=(0,0,0,0, 0, 0,),某摄像头在世界坐标系下的位姿为(x,y,z,roll,pitch,yaw)=(0,0,1,0 ,0,90),如何在ROS中显示?使用tf来发布显示,程序如下#include <ros/ros.h>#include <visualizati...原创 2019-03-06 14:23:51 · 11475 阅读 · 0 评论 -
(九)ROS在rviz中实时显示轨迹(nav_msgs/Path消息的使用)
如何在rviz中如何实时显示轨迹呢?本文分析nav_msgs/Path结构,实现在rviz中画出圆形轨迹。原创 2017-04-20 11:21:14 · 41031 阅读 · 23 评论 -
(四)ROS坐标变换可视化(示例运行)
ROS中如何查看机器人的坐标变换呢?使用《Learning ROS for robotic Programming second edition》中的示例 注意使用的是hydro版本的ros。1.示例运行1启动turtle_tf包下的启动文件。roslaunch turtle_tf turtle_tf_demo.launch可以发现,启动文件turtle_tf_demo.launch如下<laun原创 2017-03-25 14:42:59 · 3563 阅读 · 0 评论 -
(二)ROS中控制机器人运动(示例运行)
ROS中让机器人运动的步骤如下: (1)新建机器人模型 (2)运行.launch文件加载模型 (3)加载rviz的配置文件 (4)发布消息使用机器人运动 首先使用《ROS_by_example》书籍中的代码来看下效果 示例代码运行步骤: 1)linux中下载和示例代码 命令如下(我的ROS版本为hydro):$mkdir ~/catkin_ws/src$cd ~/catkin_ws原创 2017-03-22 11:55:34 · 15267 阅读 · 7 评论 -
ROS中新建多轴机器人模型(urdf)并用rviz显示
ROS中新建机器人模型(Xacro格式)并用rviz显示,有两种方法 方法1步骤 1.新建urdf文件 2.编辑.launch文件 3.显示urdf(1)新建urdf文件1)cd到~/dev/workspace/目录,使用命令创建包工作区roscreate-pkg robot1pkg urdf 2)将包的工作区赋值给ROS-_PACKAGE_PATH变量 vim ~/.bash-p原创 2017-03-22 17:30:34 · 4317 阅读 · 1 评论 -
ROS中新建机器人模型(.xacro)并用rviz显示
在很多情况下,ROS对urdf文件的支持并不是很好,使用宏定义的.xacro文件兼容性更好,扩展性也更好。而且urdf文件的语法比较复杂,代码太多。用.xacro文件表示模型更加简洁。ROS中新建机器人模型(.xacro)并用rviz显示 步骤: (1)新建并编辑.xacro文件 (2)新建并编辑.launch文件 (3)使用rviz显示模型1.新建并编辑.xacro文件 1)cd到~/原创 2017-03-22 18:05:49 · 11322 阅读 · 1 评论 -
ROS节点、消息、服务、主题的关系
1.ROS计算图级ROS 会创建一个连接到所有进程的网络。在系统中的任何节点都可以访问此网络,并通过该网络与其他节点交互,获取其他节点发布的信息,并将自身数据发布到网络上。 如图 在这一层级中最基本的概念包括节点、节点管理器、参数服务器、消息、服务、主题和 消息记录包,这些概念都以不同的方式向计算图级提供数据: 节点(Node) 节点是主要的计算执行进程。如果你想要有一个可以与其他节点进行交原创 2017-03-25 14:19:15 · 10544 阅读 · 0 评论 -
(五)ROS 发布tf消息并在rviz中显示
1.总体步骤介绍及实验结果本文通过实现ROS中的示例来理解ROS中的坐标变换tf 参考的英文教程如下 http://wiki.ros.org/tf/Tutorials/Introduction%20to%20tf 以上的ROS教程有两只乌龟,比较麻烦。 本文将修改教程的程序,将两只乌龟变为一只乌龟,使理解TF的使用更加容易。 本程序实现的功能是使用键盘控制乌龟在TurtleSim中移动,然原创 2017-03-29 10:37:56 · 12760 阅读 · 3 评论 -
(六)ROS发布里程计(Odometry)消息并在rviz中显示
由于tf只能表示机器人相对与全局地图 world的位置关系,而里程计消息不但能表示位置还能够表示向量信息。里程计消息nav_msgs/Odometry 结构如下 Header header string child_frame_id geometry_msgs/PoseWithCovariance pose geometry_msgs/TwistWithCovariance twistRO原创 2017-03-30 18:05:06 · 24046 阅读 · 1 评论 -
(三)ROS中控制机器人运动的实现(在gazebo中显示)
ROS中控制机器人运动主要流程如下 新建模型—>加载驱动插件—>启动模型和节点->显示 有了机器人模型还不行,在Gazebo中仿真需要控制模型。模型中有轮子,需要控制轮子转动,控制轮子转动就需要加载驱动。步骤: (1)编辑机器人模型 (2)编辑gazebo属性,加载连接器控制驱动插件 (3)编辑gazebo属性,加载ros控制插件 (4)编辑.launch文件 (5)安装键盘控制器包原创 2017-03-23 16:44:33 · 24307 阅读 · 4 评论 -
ROS中gazebo工具学习(使用gazebo加载机器人模型)
gazebo是ROS中的一个实现物理仿真的工具包,gazebo本身就是一款机器人的仿真软件,基于ODE的物理引擎,可以模拟机器人以及环境中的很多物理特性。 注意,gazebo和rviz是不同的工具包,不要混淆。1.使用gazebo加载机器人模型类似于rviz工具,在gazebo工具中也可以加载机器人模型。 加载的步骤: (1)安装gazebo工具包 (2)新建工程,将包的路径位置加入到环境变原创 2017-03-24 11:13:00 · 25490 阅读 · 9 评论 -
(十)ROS在rviz中显示空间中的直线(visualization_msgs/Marker 消息)
ROS在rviz中显示空间中的直线使用visualization_msgs/Marker 消息原创 2017-04-21 17:07:29 · 9230 阅读 · 1 评论 -
(八)ROS创建点云数据并在rviz中显示
ROS创建点云数据并在rviz中显示sensor_msgs::PointCloud2原创 2017-04-15 17:19:42 · 19827 阅读 · 5 评论 -
(七)ROS使用OpenCV读取图像并发布图像消息在rviz中显示
思路: (1)使用opencv读取本地图像 (2)调用cv_bridge::CvImage().toImageMsg()将本地图像发送给rviz显示原创 2017-04-13 14:11:30 · 15082 阅读 · 4 评论 -
roslaunch 出现如下错误解析
ros 中使用roscore命令或者输入roslaunch运行脚本时,如果出现以下错误 Invalid tag: Cannot load command parameter [rosversion]: command [rosversion roslaunch] returned with code [1]. Param xml is 原因是ROSPACKAGEPATH有问题,如果输入rosc原创 2017-03-23 12:03:46 · 6928 阅读 · 0 评论 -
ROS:在Qt Creator中打开catkin工程
参考 http://fzheng.me/2016/01/19/qtc-ros/ 在Qt Creator中打开catkin 工程步骤如下 (1)切换到工程目录下的srccd ~/catkin_ws/src(2)显示CMakeLists.txt信息发现是链接类型ls -l # Take note of the actual symlink target(3)使用命令创建为 CMakeLists.原创 2017-06-01 11:50:10 · 3263 阅读 · 0 评论 -
gazebo的bumper使用
本文解决gazebo的bumper碰撞的时候传感器数据为空的问题。注意:只有把contact中的collision名字取对了才能有碰撞数据!使用步骤:(1)在.urdf.xacro文件中加入link和joint,并且加上碰撞,如给collision命名base_collision<link name="bumper_link"> <inertial> ...原创 2019-10-09 09:53:37 · 2240 阅读 · 2 评论