ros

ROS的学习之路[3]

不羁的心 提交于 2020-02-19 04:12:33
catkin工作空间和程序包的学习笔记 一.工作空间的创建 二.程序包的创建 三.编译 一.工作空间的创建 1.ROS相关操作第一步其实应该都是配置环境: source /opt/ros/kinetic/setup.bash 因为这个命令会频繁使用到,所以在 这篇记录 中,我参考了其他文章将命令添加进.bashrc文件中,这样每次打开一个终端都会自动source好。 方法一 :直接输入命令: echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc ,并重新启动Terminal即可生效。 方法二 :打开.bashrc: gedit .bashrc 添加如下代码到最后一行: source /opt/ros/kinetic/setup.bash 注意 /kinetic/ 部分要和安装版本对应,如果不知道自己的版本,就到/opt/ros/目录下查看就行。 2.创建 mkdir -p ~/catkin_ws/src #创建catkin_ws文件夹(catkin workspace),其下包含src文件夹,参数:-p 确保目录名称存在,如果目录不存在的就新创建一个 cd ~/catkin_ws/ #cd到创建好的文件下 catkin_make #用命令创建工作空间所需文件 此外,在当前目录中查找,现在应该有一个“build”和“devel

ROS_melodic版本在安装moveit及ROS2时的一些问题

我只是一个虾纸丫 提交于 2020-02-15 08:08:00
简介 最近在拜读ROS大神胡春旭的书籍《机器人开发实践》,随把源代码从仓库clone下来,进行编译和学习。仓库代码主要是基于Kinetic版本的,而目前我们主要使用Melodic版本,所以很多地方问题不一样现记录如下,希望后来者可以参考学习。 问题1:书中所说的ROS2的问题 解决方案: 该问题属于ROS和ROS2的不兼容造成,直接把ROS2移除即可。 1 问题2:关于ECTO的报错报错信息如下 Could not find the required component ‘ecto’. The following CMake error indicates that you either need to install the package with the same name or change your environment so that it can be found. CMake Error at /opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:83 ( find_package ) : Could not find a package configuration file provided by “ecto” with any of the following names: ectoConfig

ROS操作系统学习(七)话题消息的定义与使用

試著忘記壹切 提交于 2020-02-14 13:46:38
创建一个话题,里面包括学生的姓名性别年龄,并通过发布者发布,订阅者接收 如何定义话题消息 定义msg文件 在package.xml中添加功能包依赖 在CMakeList.txt添加编译选项 编译生成语言相关文件 1.定义msg文件 在learning_topic下创建msg文件夹 在msg文件夹下创建Person.msg文件 touch Person . msg Person.msg内容 string name uint8 sex uint8 age uint8 unknown = 0 uint8 male = 1 uint8 female = 2 2.在package.xml中添加功能包依赖 < build_depend > message_generation < / build_depend > < exec_depend > message_runtime < / exec_depend > 3.在CMakeList.txt添加编译选项 add_executable ( person_publisher src / person_publisher . cpp ) target_link_libraries ( person_publisher $ { catkin_LIBRARIES } ) add_dependencies ( person_publisher $ {

ROS基础知识学习笔记(5)—TF Package

一笑奈何 提交于 2020-02-13 22:04:19
1.安装TF功能包 sudo apt - get install ros - $ROS_DISTRO - turtle - tf2 ros - $ROS_DISTRO - tf2 - tools ros - $ROS_DISTRO - tf 2.功能包提供的例子 roslaunch turtle_tf2 turtle_tf2_demo . launch 这个例子是键盘控制turtle1,然后turtle2会追赶turtle1 3.节点和话题图形 rosrun rqt_graph rqt_graph 4.节点和话题 rosnode list rostopic list - v 5.分析主题 /turtle1/pose的消息类型[turtlesim/Pose] rostopic echo / turtle1 / pose 分析一下pose的数据类型 这是官网的geometry_msgs/Pose.msg的定义: geometry_msgs/Pose.msg 截图如下: 我们看到,此处的数据类型与程序运行的数据截图不同。因为这个例子中用的是[turtlesim/Pose],我们在终端查看turtlesim/Pose的形式: lv@lv - HP : ~ $ rosmsg show turtlesim / Pose float32 x float32 y float32 theta

ros入门教程(二)-- 工程结构

雨燕双飞 提交于 2020-02-12 22:03:28
工程结构即文件系统结构。 一个典型的ros工程结构如下图所示 catkin catkin工作空间 这是ros工程框架里层次最高的概念。 catkin:是ros定制的编译构建系统,是对CMake的扩展。我们用它来编译ros程序。 而catkin 工作空间其实就是一个文件夹,用它来组织和管理ros功能包的文件夹,比如对它的克隆,创建,修改等操作。那这个工作空间是从哪里来的呢,这就需要我们用指令来创建: catkin_make : 这个指令帮我们初始化工作空间,空间的名字可以随便取,但是里面一定要有src目录 $ mkdir -p ~/catkin_ws/src $ cd ~/catkin_ws/ $ catkin_make 其实该指令的最主要功能不是初始化空间,而是编译,一般我们写完了代码都需要catkin_make 一下,系统就会帮我们自动构建。 注意: catkin_make 之前一定要回到 catkin_workspace,不然会失败 catkin_make 之后要记得source bash文件:目的是要把刚刚编译完的ws刷新到环境变量里,这样才可以让系统知道ros系统文件放在哪里。 $ cd ~/catkin_ws $ catkin_make $ source ~/catkin_ws/devel/setup.bash 在catkin_make之后即可看到如下的目录结构:

ROS和Gazebo进行机器人仿真(二)

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-11 21:29:54
一.在Gazebo中使用ROS控制器 在本节中,我们将讨论如何在Gazebo中让机器人的每个关节运动。 为了让关节动起来,我们需要分配一个ROS控制器,尤其是,我们需要为每个关节连上一个与transmission标签内指定的硬件接口兼容的控制器。 ROS控制器主要由一套反馈机构组成,可以接受某一设定点,并用执行机构的反馈控制输出。 ROS控制器使用硬件接口与硬件交互,硬件接口的主要功能是充当ROS控制器与真实或仿真硬件之间的中介,根据ROS控制器生成的数据来分配 资源控制它。 在本机器人,我们定义了位置控制器,速度控制器,力控制器等,这些ROS控制器是由名为ros_control的一组软件包提供的。 为了正确理解如何为机械臂配置ROS控制器,我们需要理解它的概念。我们将进一步讨论ros_control软件包,不同类型的ROS 控制器以及ROS控制器如何与Gazebo仿真交互。 1.认识ros_control软件包 ros_control软件包实现了机器人控制器、控制管理器、硬件接口、不同的传输接口和控制工具箱。 ros_control软件包由以下各独立的软件包组成: *control_toolbox : 这个软件包包含通用模块(PID 和 Sine),可供所有控制器使用。 *controller_interface : 这个软件包包含了控制器的接口(interface)基类。

开发函数计算的正确姿势——轻松解决大依赖部署

半腔热情 提交于 2020-02-11 17:24:08
前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute) : 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。函数计算更多信息 参考 。 Fun : Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API 网关、日志服务等资源。它通过一个资源配置文件(template.yml),协助您进行开发、构建、部署操作。Fun 的更多文档 参考 。 NAS : 阿里云文件存储NAS是一个可共享访问,弹性扩展,高可靠,高性能的分布式文件系统。在函数计算的场景中,由于其有代码包的限制,可以使用 NAS 存放一些不经常变动的文件,比如数据模型、静态资源等。 参考 。 ROS : 阿里云资源编排服务(ROS)助您简化云计算资源的管理。您可以遵循ROS定义的模板规范,在模板中定义所需云计算资源的集合及资源间依赖关系。ROS自动完成所有资源的创建和配置,实现自动化部署和运维。更多文档 参考 。 备注: 本文介绍的技巧需要 Fun 版本大于等于 3.4.0。 基本上所有的 faas 平台为了优化函数的冷启动,都会加入代码包的限制。阿里云 函数计算 (FC)也不例外。FC

ROS学习记录(五)树莓派外部控制 Pixhawk(一站到底)

大城市里の小女人 提交于 2020-02-11 16:17:34
序言 上一次 说到学习 ROS,主要是因为在做多无人机协同控制项目。听说可以使用 ROS 来实现树莓派控制 Pixhawk 无人机,这样可以不用修改飞控源码,而且可以用树莓派做图像处理。于是开始了一场浩浩荡荡的西行,可奈何刚翻过几座山,又越过几条河,妖魔鬼怪怎么这么多。不过一条总结是多去官网,博客鱼龙混杂,而且很多时候版本不合,不可使用。 折腾了好久好久,终于完成了环境搭建,后面也测试成功,因此想记录一下。 注:初学外部控制时, 请勿 挂上螺旋桨,否则很危险!!! 一、系统环境 软硬件名称 版本 备注 树莓派 Raspberry Pi 3B 无 树莓派操作系统 Ubuntu 16.04 MATE 无 树莓派安装库 ROS (Kinetic) 和 MAVROS Moledic 似乎只支持Ubuntu18.04 及以上 飞控 Pixhawk 2.4.8 无 飞控固件版本 PX4 v1.8.2 (stable) 无 笔记本操作系统 Ubuntu 16.04 如果不做源码编译与仿真,Windows也可 笔记本关键软件 QGroundControl v3.5.6 用于下载固件 笔记本关键软件 putty 用于远程登录树莓派 其他硬件 USB转TTL 无 假设你已经完成以上软硬件安装,注意QGC 使用的最新PX4 固件为 v1.10.1 ,找不到下面的 SYS_COMPANION 参数

ROS编译安装过程中遇到的一些问题及解决方法

纵饮孤独 提交于 2020-02-11 01:41:53
通常我们在编译安装ros的时候不可避免会遇到一些问题,比如缺少某一个库文件或这功能包,如果遇到可以用sudo apt-get 可以解决的当然方便很多,有时候需要我们自己到ros-wik上下载从源码安装,因此此篇主要用于记录编译安装过程中遇到的问题及相应的解决方法。 问题一:缺少bullet -- Using these message generators : gencpp ; geneus ; genlisp ; gennodejs ; genpy CMake Error at / usr / share / cmake - 3.5 / Modules / FindPackageHandleStandardArgs . cmake : 148 ( message ) : Could NOT find Bullet ( missing : BULLET_DYNAMICS_LIBRARY BULLET_COLLISION_LIBRARY BULLET_MATH_LIBRARY BULLET_SOFTBODY_LIBRARY BULLET_INCLUDE_DIR ) Call Stack ( most recent call first ) : / usr / share / cmake - 3.5 / Modules / FindPackageHandleStandardArgs .

ROS和Gazebo进行机器人仿真(一)

删除回忆录丶 提交于 2020-02-10 22:32:16
Gazebo是一种多机器人仿真器,可用于室内外机器人仿真。Gazebo在ROS中有良好的接口,包含ROS和Gazebo的所有控制。 若要实现ROS到Gazebo的通信,我们必须安装ROS-Gazebo接口。 应该安装以下软件包: $ sudo apt install ros-melodic-gazebo-ros-pkgs ros-melodic-gazebo-msgs ros-melodic-gazebo-plugins ros-melodic-gazebo-ros-control *gazebo_ros_pkgs : 它包含用于将ROS和Gazebo连接的封装和工具。 *gazebo-msgs : 它包含ROS和Gazebo交互的消息和服务的数据结构。 *gazebo-plugins : 它包含用于传感器、执行结构的Gazebo插件。 *gazebo-ros-control : 它包含用于在ROS和Gazebo之间通信的标准控制器。 安装后,请使用以下命令检查Gazebo是否安装正确: $ roscore & rosrun gazebo_ros gazebo 一.为Gazebo创建机械臂仿真模型 我们可以通过添加仿真参数来更新现有的机器人描述,从而创建一个机械臂仿真模型。 我们需要去创建一个软件包: $ catkin_create_pkg seven_dof_arm_gazebo