ROS安装使用与Qt使用ROS配置
ROS安装使用
- ROS安装及配置
- ROS安装
- ROS环境变量配置
- ROS工作空间建立
- 新建工作空间
- 新建package
- 编译执行
- Ros可视化调试助手
- QtCreator中使用ROS程序
ROS安装及配置
详细参考ros wiki
ros作为出名的机器人操作系统,现在版本很多。主流的是16年出的kinetic,根据其官网提醒,这个版本支持到2021.04
我们在ubuntu16.04中安装kinetic,其他版本的安装方式如维基官网所示,wiki支持中文。
- tips1:
和别的wiki相同,查看ros的wiki时,中英文区别在于中间是否有cn
http://wiki.ros.org/cn/ROS/Tutorials
为中文版
http://wiki.ros.org/ROS/Tutorials
为英文版
ROS安装
安装过程还是很轻松的,主要参考官网。
1、首先设置可以从packages.ros.org上接受软件
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
2、其次添加keys
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
- tips2:如果遇到连接到keyserver的问题,你可以在以上命令尝试替换hkp://pgp.mit.edu:80或hkp://keyserver.ubuntu.com:80。即把 hkp://ha.pool.sks-keyservers.net:80替换为以上两个中的一个。
3、安装
而后选择自己需要的不同的配置安装,为了功能全部具备,选择了桌面完整版安装
sudo apt-get install ros-kinetic-desktop-full
ROS环境变量配置
使用和环境变量配置
在开始使用ROS之前你还需要初始化rosdep。rosdep这个东西可能是配置一些依赖库的吧。
sudo rosdep init
rosdep update
我们知道在每个终端打开后,其自己是先加载了home下.bashrc文件中的环境变量,这样才可以使用一些特殊软件的指令。若想要使用roscd rosrun等ROS里的命令,自然是需要添加环境变量的:
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
当然啦,也可以打开home下的隐藏文件.bashrc,然后手动添加在文件的最后。
到这里,ros的完整数据包就安装完成了,为了检查自己的安装是否成功,可以依次经典的小乌龟例程试一下。
打开一个新终端,输入
roscore
其次再打开一个终端,打开看见一个乌龟即可。
rosrun turtlesim turtlesim_node
再打开另一个新终端输入如下,可以动一动。
rosrun turtlesim turtle_teleop_key
- tips3: 除此之外,ros还有很多数据包和各种图形界面,可以在这个网站找到.
ROS工作空间建立
新建工作空间
在配置好环境变量后,需要新建一个catkin工作空间,一般叫做catkin_ws:
mkdir ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace#(会在src下建立一个Cmakelist.txt)
cd ..
catkin_make
随后就在~/catkin_ws/下面生成了src
build
devel
三个文件夹。在src生成CMakelist.txt.
如果在ros编译时出现如下错误
CMake Error at /opt/ros/kinetic/share/catkin/cmake/safe_execute_process.cmake:11 (message): execute_process(/home/qy/catkin_uvd/build/catkin_generated/env_cached.sh "/usr/bin/python" "/usr/bin/empy" "--raw-errors" "-F" "/home/qy/catkin_uvd/build/catkin_generated/order_packages.py" "-o" "/home/qy/catkin_uvd/build/catkin_generated/order_packages.cmake" "/opt/ros/kinetic/share/catkin/cmake/em/order_packages.cmake.em") returned error code 1
·
则可在CMakeCache.txt中加入如下环境变量,可用cmakegui打开改文件选择Add Entry
,
也可在QT中加入;也可以在编译时加入该环境变量catkin_make -DCMAKE_PREFIX_PATH=/opt/ros/kinetic
为了能够让电脑自动识别出我们所建立工作空间。能够使用roscd 、rosrun直接进入或运行我们的package和程序,需要在.bashrc中加入一行环境变量
source ~/catkin_ws/devel/setup.bash
或者
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
这时可用echo $ROS_PACKAGE_PATH抓一下是否设置有环境变量。
- tips4:也可以每次运行前设置一下这个工作空间的环境变量(
source ~/catkin_ws/devel/setup.bash
或者export ROS_PACKAGE_PATH=~/catkin_ws/devel/setup.bash$ROS_PACKAGE_PATH
),因为由于测试需求,有可能有多个相同package名字的工作空间,都放入系统环境变量,会导致不清楚执行的是哪一个程序。
新建package
package是ROS中相当重要的概念,在src下打开终端,输入如下,其中package_name应当全部小写
catkin_create_package <package_name> [depend1] [depend2] [depend3]
#在kinetic中已经将指令更新为
catkin_create_pkg <package_name> [depend1] [depend2] [depend3]
就会在src下新建一个package_name文件夹并会有Cmakelist.txt和package.xml(清单)两个文件,可以编辑和cmakelist.txt加入项目文件、源代码。在package.xml(清单)中增加依赖ros依赖。
编译执行
编译我们可以用catkin_make、直接make、在Qt中编译三种方式,个人更倾向于catkin_make或在Qt中编译。
$ cd ~/catkin_ws
$ catkin_make -DCMAKE_BUILD_TYPE=Release
另外默认文件是生成在src同目录下面的,很多时候临时调试程序需要在另一台电脑中简要更新程序,而又不想拷贝代码,因此可以将代码放在U盘中,使编译所得程序生成在本地计算机中。可见另外一篇博文U盘编译ros程序
Ros可视化调试助手
在终端输入rqt
可查看到ros调试助手,功能丰富,操作简单,而且不用记其操作指令。
例如:ROS可视化动态查看所有topic的频率/带宽/消息类型/数值
QtCreator中使用ROS程序
可以用来ROS开发的IDE很多,我们采用Qt。
安装qt后,简而言之就是在打开qt时同时加载ros的环境变量,使得能够找到ros的各个库。前提是电脑安装了cmake,本机测试在qt5.9 5.7中均测试过。
- 1、找到qt的启动快捷方式DigiaQt-qtcreator-community.desktop(根据qt版本不同,名字有差异,但图标都一样)
在/home/qy/.local/share/applications
或者/usr/share/applications/
下,复制一个备份到桌面,拖入gedit打开,或在终端打开
gedit /home/qy/Desktop/DigiaQt-qtcreator-community.desktop
看见如下内容
[Desktop Entry]
Type=Application
Exec=/home/qy/Qt5.9.2/Tools/QtCreator/bin/qtcreator
Name=Qt Creator (Community)
GenericName=The IDE of choice for Qt development.
Icon=QtProject-qtcreator
StartupWMClass=qtcreator
Terminal=false
Categories=Development;IDE;Qt;
MimeType=text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.qt.qmakeprofile;application/vnd.qt.xml.resource;text/x-qml;text/x-qt.qml;text/x-qt.qbs;
- 2、修改其如下:
[Desktop Entry]
Type=Application
Exec=bash -i -c /home/qy/Qt5.9.2/Tools/QtCreator/bin/qtcreator
Name=Qt Creator (ROS)
GenericName=The IDE of choice for Qt development.
Icon=QtProject-qtcreator
StartupWMClass=qtcreator
Terminal=false
Categories=Development;IDE;Qt;
MimeType=text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.qt.qmakeprofile;application/vnd.qt.xml.resource;text/x-qml;text/x-qt.qml;text/x-qt.qbs;
这里做的更改主要是在第三行Exec中加入bash -i -c
,是为了前面所说加载.bashrc中的环境变量,因此.bashrc中要包含source /opt/ros/kinetic/setup.bash
。双击打开本图标就为加载ros环境变量后的qt。
打开qt,选择src下的cmakelist,并选择Debug Realse文件的生成位置,选择src同目录下的build文件。也可以将Qt设置为自动选择src同目录下的build文件夹(最下一行)。
ROS安装使用与Qt使用ROS配置相关推荐
- ROS入门笔记(二):ROS安装与环境配置及卸载(重点)
ROS入门笔记(二):ROS安装与环境配置及卸载(重点) 文章目录 1 ROS安装步骤 1.1 ROS版本 1.2 确定Ubuntu版本号 1.3 安装ROS 1.3.1 Ubuntu初始环境配置 1 ...
- ROS安装、双系统Ubuntu安装以及ROS的基本使用
双系统ROS安装以及基本教程 第一章 安装ubuntu下载 第二章 ROS安装以及基本实现 文章目录 双系统ROS安装以及基本教程 前言 一.ubuntu安装 1.Ubuntu镜像安装: 2.Win3 ...
- qtcreator版本_【IDE】ROS开发环境之Qt Creator的安装与配置
可以用于ROS开发的IDE很多(可以参考[工具合辑]ROS工程师都在用什么IDE开发呢?用哪种IDE开发更加高效呢? ),ROS的调试依赖环境变量,与外部程序有通讯,因此要求启动IDE的时候加载ROS ...
- ubuntu卸载_ROS入门笔记(二):ROS安装与环境配置及卸载(重点)
1 ROS安装步骤 1.1 ROS版本 ROS目前只支持在Linux系统上安装部署, 它的首选开发平台是Ubuntu. 注:如果Ubuntu版本和ROS版本不对应的话,安装就不会成功了- 笔者使用的平 ...
- ROS安装:Ubuntu18.04安装配置ROS-melodic
背景知识 安装可以参考官方文档: melodic/Installation/Ubuntu - ROS Wiki 1 安装melodic 1.1 安装ROS的下载源 在国内安装,选以下一个源: 中科大资 ...
- 【Ubuntu-ROS】ubuntu16.04(18.04)ROS安装配置与卸载
1. 查看是否已经安装ROS 打开一个terminal控制台,直行 roscore 命令,若控制台有以下信息输出,则表示ros已经安装了 ... logging to /home/idriver/.r ...
- ROS安装过程和配置过程(可能出现的问题及解决方法)
(请先看置顶博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 准备学习ROS,所以在Linux Ubuntu16.04 ...
- ROS安装与机器人环境配置总结
1. ROS安装 ROS安装官方文档:Ubuntu install of ROS Melodic http://wiki.ros.org/melodic/Installation/Ubuntu 错误 ...
- camera驱动电源配置_[ROS] 安装 USB Camera 驱动并调用
在 ROS 系统中,想要使用 USB 摄像头需要安装相应的驱动程序.这里以常用的 usb_cam 为例来说明如何安装给 ROS 安装 USB 摄像头. 0.安装环境: Ubuntu版本:14.04 L ...
最新文章
- 几何画板画一个五边形内部的方法
- 移动端 元素外面使用伪类after加边框 导致其内部元素无法选中
- golang 读写文件的四种方式
- 琴弦文字 - wpf行为
- 使用正则表达式的技巧
- js使用hover事件做一个“个人中心”的浮动层
- 1、和一定时找数组中的两个数
- 该市官宣:高校有序解除封闭管理!
- 基于Spring-statemachine的有限状态机(FSM)的介绍及示例
- Gjs编程及调用底层库原理
- 三极管与稳压管恒流电路
- 从菜鸟到架构师(六)
- 数据清洗整理基本操作(R:dplyr、tidyr、lubridate)
- 主题:一个中专生:我在华为面试的真实经历,转http://www.javaeye.com/topic
- HDU 4125 Moles 线段树+KMP
- html与jsp、jsp与jsp之间的交互
- 隧道工地考勤人员定位体系,提高施工人员作业安全-新导智能
- 电脑文件误删除如何恢复?可以快速找回
- C++算法:三种方法求最大公约数和最小公倍数
- 易优模板,易优模板,易优cms模板大全
热门文章
- 字符串数组,字符数组
- STM32CubeMX5.1.0使用教程,以STM32L431为例(二):新建工程、时钟、gpio
- 传奇服务器怎么修改qq号,教你如何更改qq号码?
- Apache的虚拟主机是啥?
- linux软路由ospf,深入解析使用Linux+Zebra构建软路由系统
- css 不同语言下设置不同的字体
- 新版iTunes Connect如何删除一个已上传的built。重新上传
- FFmpeg最常用命令参数详解及应用实例
- Android图库/相册,禁止扫描指定的图片目录
- 论文笔记:《Network Dissection: Quantifying Interpretability of Deep Visual Representations》