ros机器人
ros学习
Stay hungry. Stay foolish.
这个作者很懒,什么都没留下…
展开
-
12、Gazebo的安装问题
一、Gazebo的安装问题1、安装的官网的网址:http://gazebosim.org/tutorials?cat=install&tut=install_ubuntu&ver=9.02、安装注意事项:安装前1、Ubuntu系统版本和Gazebo的版本要对应的上,版本对应关系如下所示:Ubuntu 14.04 Trusty Tahr - ROS Indigo Igloo - Gazebo 2.X 2014-2019Ubuntu 16.04 Xenial Xerus - RO原创 2020-10-22 11:14:12 · 2663 阅读 · 4 评论 -
11、ros依赖包安装问题
一、问题在ROS编译过程中经常会遇到找不到ROS包的情况,那么一般情况下该如何解决问题呢?我们通常用apt来进行安装,实际上有时候apt在处理依赖关系上是没有aptitude那么智能的,所以我们可以尝试安装aptitude这个工具,来重新尝试下安装。aptitude 与 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具。与 apt-get 不同的是,aptitude 在处理依赖问题上更佳一些。举例来说,aptitude 在删除一个包时,会同时删除本身所依赖的包。这样,系统中原创 2020-10-22 11:12:18 · 1076 阅读 · 0 评论 -
10、从零开始写URDF模型
此文编写参照古月居的课程,如有错误之处,欢迎指正。一、机器人的组成从控制的角度来看,机器人的组成如下框图所示:下面是四个系统之间的关系控制系统可以是可以基于x86或者是ARM平台,一般用来完成信息处理,控制系统下发命令给到驱动系统,然后驱动系统将控制系统下达的命令转换成执行机构需要的信号,最后驱动执行机构,从而作用到工作对象中,这里的工作对象是指机器人本身,但是单有执行不行,机器人还得感知周围的环境,所以还有一个传感器系统,而传感器系统又分为外部传感器系统和内部传感器系统,内部传感器系统主要检测原创 2020-10-21 16:01:36 · 3695 阅读 · 3 评论 -
9、常用可视化工具的使用
一、QT工具箱1、rqt_console可以收集系统里的日志信息,可用于调试,如下面我们可以让小海龟碰墙,那么这个控制台中就会收集到一些警告信息2、rqt_plot用来绘制数据曲线,也可以用作观察调试使用选择小海龟的位置信息,效果图如下:3、rqt_image_view图像渲染工具,用来显示摄像头图像4、rqt它是一个综合工具二、rviz机器人开发过程中的数据可视化界面,在终端输入rviz就可以打开这个工具,如下图所示。Rviz是一款三维可视化工具,可以很好的兼容基于R原创 2020-09-26 17:34:43 · 566 阅读 · 0 评论 -
8、launch启动文件的使用方法
一、为什么需要launch启动文件传统启动节点的方法:每启动一个节点都要打开一个新的终端运行一个新的命令,当系统中的节点数量许多时,显然是很不方便的,而且命令的输入也可能会发生错误。launch启动文件的引入:可以同时启动多个节点,并且可以自动启动ROS Master节点管理器以及实现每个节点的各种配置,为多个节点的操作提供很大的便利。二、launch文件语法launch文件中的根元素采用标签定义。1、启动节点pkg:节点所在的功能包名称type:节点的可执行文件名称name:节点运行时原创 2020-09-26 16:41:53 · 2678 阅读 · 1 评论 -
7、tf坐标系的广播与监听
一、对tf的了解一个机器人中通常有多个坐标系,如世界坐标系、基座坐标系、夹具坐标系等等,这些坐标系在tf中构成坐标树,tf通过坐标树维护多个坐标系之间的坐标变换,ros坐标系可以在分布式系统中进行变换,这意味着坐标对所有的节点都是可用的,同时所有订阅tf消息的节点都会缓存一份所有坐标系的变换关系数据,而不需要中心节点来存储。1、TF功能包能干什么?五秒钟之前,机器人头部坐标系相对于全局坐标系的关系是什么样的?机器人夹取的物体相对于机器人中心坐标系的位置在哪里?机器人中心坐标系相对于全局坐标系的位置原创 2020-09-26 11:39:21 · 1215 阅读 · 0 评论 -
6、服务数据的定义和使用
一、服务数据模型二、具体实现步骤1、首先现在功能包中创建一个srv的文件夹,然后在改文件夹下新建一个以.srv为后缀的文件,所举例的该文件的具体内容如下:string nameuint8 ageuint8 sexuint8 unknown = 0uint8 male = 1uint8 female = 2--- //三条横线上方是请求信息,三条横线下方是响应信息string result2、在package.xml中添加功能包依赖<build_depen原创 2020-09-19 09:39:44 · 659 阅读 · 0 评论 -
5、服务端server的编程实现
一、服务模型二、具体实现步骤1、代码实现思路:初始化ROS节点;创建Server实例;循环等待服务请求,进入回调函数;在回调函数中完成服务功能的处理,并反馈应答数据。2、具体代码/*** 该例程将执行/turtle_command服务,服务数据类型std_srvs/Trigger */#include <ros/ros.h>#include <geometry_msgs/Twist.h>#include <std_srvs/Trigger.h>r原创 2020-09-18 22:36:34 · 291 阅读 · 0 评论 -
4、客户端client的编程实现
一、创建功能包$ cd ~/catkin_ws/src$ catkin_create_pkg learning_service roscpp rospy std_msgs geometry_msgsturtlesim二、配置CMakeLists.txt中的编译规则1、设置需要编译的代码和生成的可执行文件;2、设置链接库;add_executable(turtle_spawn src/turtle_spawn.cpp)target_link_libraries(turtle_spawn原创 2020-09-18 18:29:26 · 334 阅读 · 1 评论 -
3、话题消息的定义和使用
ROS节点之间进行通信的最重要机制是消息传递,为了在不同的开发语言实现的模块间进行消息通信,ROS利用了简单的、与开发语言无关的接口定义语言来描述模块间传递的消息在ROS中,消息本质上是一种节点间传递信息的数据类型,当节点想要分享信息时,节点可以发布消息到相应的话题中,当节点需要接收信息时,节点可以订阅相应的话题。节点管理器会确保消息传递的互通性,但消息不需要经过节点管理器进行转发。ROS提供了很多预定义的消息类型,但开发者可以通过后缀名为msg的消息文件自定义消息类型,msg文件应放置在程序包的msg目录原创 2020-09-18 15:49:41 · 635 阅读 · 0 评论 -
2、publisher于subsriber的编程实现
一、定义Publisher的主要作用是针对指定话题发布特定数据类型的消息。以下是话题的模型。二、实现步骤1、工作空间的创建(1)、创建工作空间$ mkdir -p ~/catkin_ws/src$ cd ~/catkin_ws/src$ catkin_init_workspace####(2)、编译工作空间$ cd ~/catkin_ws/$ catkin_make(3)、设置环境变量$ source devel/setup.bash(4)、检查环境变量$ echo原创 2020-09-18 08:41:19 · 258 阅读 · 0 评论 -
1、安装ros
添加ROS软件源$ sudo sh -c ‘echo “deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main” > /etc/apt/sources.list.d/ros-latest.list’添加密钥$ sudo apt-key adv --keyserver ‘hkp://keyserver.ubuntu.com:80’ --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C.原创 2020-09-05 18:26:24 · 108 阅读 · 0 评论