admin管理员组

文章数量:1570412

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/cn/ROS/Tutorials 为中文版
    http://wiki.ros/ROS/Tutorials 为英文版

ROS安装

安装过程还是很轻松的,主要参考官网。
1、首先设置可以从packages.ros上接受软件

sudo sh -c 'echo "deb http://packages.ros/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:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
  • tips2:如果遇到连接到keyserver的问题,你可以在以上命令尝试替换hkp://pgp.mit.edu:80或hkp://keyserver.ubuntu:80。即把 hkp://ha.pool.sks-keyservers: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文件夹(最下一行)。

本文标签: rosQT