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文件夹(最下一行)。