本章将会通过两种安装方式安装ROS相关软件包
分别是:
通过apt方式安装RoboWare Studio
通过下载源码编译的方式安装安装ROS-Academy-for-Beginners教学包
这是两种常见的软件包安装方式,软件包(Package)就可以分为二进制和源代码。
也就是二进制包和源码包
二进制包里面包括了已经编译完成,可以直接运行的程序。
sudo apt-get install来进行下载和解包(安装),执行完该指令后就可以马上使用了。
因此这种方式简单快捷,适合比较固定、无需改动的程序。
而源代码包里是程序的原始代码,在计算机上必须经过编译,生成了可执行的二进制文件,方可运行。
一些个人开发的程序、第三方修改或者希望修改的程序都应当通过源代码包的来编译安装。
区别 | 二进制包 | 源码包 |
---|---|---|
下载方式 | apt-get install直接下载 | git clone 直接下载源代码 |
debROS包存放位置 | /opt/ros/ kinetic | ~/catkin_ws/src |
编译方式 | 无需编译 | 通过makelcmakelcatkin |
来源 | 官方apt软件源 | 开源项目﹑第三方开发者 |
扩展性 | 无法修改 | 通过源代码修改 |
可读性 | 无法查看源代码 | 方便阅读源代码 |
优点 | 下载简单,安装方便 | 源码可修改,便于定制功能 |
缺点 | 无法修改 | 编译工具﹑软件包依赖﹑版本和参数 |
应用场景 | 基础软件 | 需要查看、开发和修改的程序 |
二进制安装包:
在ROS中,经常会遇到缺少相关的ROS依赖的问题。
有些时候编译或者运行一些ROS程序,系统会提示找不到XXX功能包。
遇到这样的问题,先注意阅读错误原因,看看是否有解决方法,也可以Google一下。
如果是缺少ROS的依赖,通常可以用以下命令来安装:
sudo apt-get install ros-kinetic-PACAKGE
将PACKAGE替换为系统提示缺少的软件包
通常ROS的程序都是用C++和Python开发的﹐为了提高升发的效率,建议用IDE来写代码。
目前在Ubuntu上已经有许多IDE支持ROS开发﹐比如Eclipse ·Qt Creator。
不过这些IDE配置起来会比较麻烦,所以推荐一款适配ROS的IDE——RoboWare Studio来升发ROS
RoboWare Studio是一个ROS集成开发环境。
它使 ROS开发更加直观、简单、并且易于操作。
可过行ROS工作区及包的管理、代码编辑、构建及调试。
sudo apt-get install build-essential
sudo apt-get install python-pip
sudo python -m pip install pylint
sudo apt-get install clang-format-3.8 # 也可以装3.9
(1)RoboWare官网:http:l/lwww.roboware.me/H/home
(登不进去)
(2)网盘链接1提取码:nibq
(3)网盘链接2密码:3iuk
(4)官方GitHub链接:TonyRobotics/RoboWare
在terminal输入
roboware-studio
在官网可以查看很丰富的功能包和示例
现在要把他们弄到自己的系统里
依次执行:
下载教学包到工作空间
sudo apt-get install git # 安装Git
mkdir -p tutorial_ws/src # 创建二级目录
cd tutorial_ws/src # 到这个目录中
git clone https://github.com/DroidAITech/ROS-Academy-for-Beginners.git
cd ~/tutorial_ws # 返回上一层 也可以 [cd ..]
要根据自己的版本填写是melodic还是kinetic还是其他,不然会报错
rosdep install --from-paths src --ignore-src --rosdistro=kinetic -y
可能出现的问题1:
运行完可能会出现让你rosdep update一下,按照要求做就好了
此处有问题参考该文章
可能出现的问题2:
ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies
这是由于路径问题导致的,可以这样处理:
rosdep install --from-paths ./src/ROS-Academy-for-Beginners/ --ignore-src --rosdistro=kinetic -y
或者
rosdep install --from-paths ~/tutorial_ws/src/ROS-Academy-for-Beginners/ --ignore-src --rosdistro=kinetic -y
或者
rosdep install --from-paths ./src/ROS-Academy-for-Beginners --ignore-src -r
注意路径填自己的路径
在开始编译之前,需要确保Gazebo在7.0版本以上
gazebo -v
没有的话安装一下
sudo apt install gazebo7
版本太低升级一下
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
sudo apt-get update
sudo apt-get install gazebo7
gazebo启动不了:
echo "export SVGA_VGPU10=0" >> ~/.bashrc
source ~/.bashrc
如果还不行:
sudo gedit .ignition/fuel/config.yaml
将
url: https://api.ignitionfuel.org
改为
url: https://api.ignitionrobotics.org
gezebo的使用之后再讲
cd ~/tutorial_ws
catkin_make
catkin_make出现问题的解决方案
有问题不怕,缺多少个依赖安装多少个
source ~/tutorial_ws/devel/setup.bash
注意:source命令,编译完成后必须刷新一下工作空间的环境,否则可能找不到工作空间。
许多时候为了打开终端就能够运行工作空间中编译好的ROS程序
习惯把source ~/tutorial_ws/devel/setup.bash
命令追加到~/.bashrc
文件中
这样每次打开终端,系统就会刷新工作空间环境。
echo "source ~/tutorial_ws/devel/setup.bash" >>~/.bashrc
source ~/.bashrc
rospack profile
roslaunch robot_sim_demo robot_spawn.launch
打开新终端再输入下面的命令用键盘控制机器人移动:
rosrun robot_sim_demo robot_keyboard_teleop.py