文章目录
1.ROS
1.1Robot Operating System
ROS是一个元操作系统(Meta-Operating System)
ROS不是传统的操作系统,如Windows、Linux和Android,反而是在利用现有的
操作系统。使用ROS前需要先安装诸如Ubuntu的Linux发行版操作系统,之后再安装
ROS,以使用进程管理系统、文件系统、用户界面、程序实用程序(编译器、线程模型
等)。此外,它还以库的形式提供了机器人应用程序所需的多数不同类型的硬件之间的数
据传输/接收、调度和错误处理等功能。这个概念也被称为中间件(Middleware)或软件
框架(Software framework)。
1.2 ROS特征
ROS的目标是“建立一个在全球范围内协作开发机器人软件的环境!”
ROS具有以下特征:
- 分布式进程:它以可执行进程的最小单位(节点,Node)的形式进行编程,每个进程独立运行,并有 机地收发数据。
- 功能包单位管理:由于它以功能包的形式管理着多个具有相同目的的进程,所以开发和使用起来很容 易,并且很容易共享、修改和重新发布。
- 公共存储库:每个功能包都将其功能包公开给开发人员首选的公共存储库(例如GitHub),并标识许可证。
- API类型:使用ROS开发程序时,ROS被设计为可以简单地通过调用API将其加载到其使用的代码中。您会发现ROS编程与C++和Python程序没有区别。
- 支持多种编程语言:ROS程序提供客户端库(Client Library)2以支持各种语言。它可以用于如JAVA、 C#、Lua和Ruby等语言,也可以用于机器人中常用的编程语言,如Python、C++和Lisp。换句话说,您可以使用熟悉的语言开发ROS程序。
1.3 ROS组件
1.4 ROS生态系统
1.5 ROS版本历史
每年的5月23日是世界乌龟日(World Turtle Day)19,所以现在每年的这个有象征意义的一天会发布新
的ROS版本;而针对每两年发布的Ubuntu长期支持版(Long Term Support)20 发布的ROS版本提供与LTS一样的5年的支持期间。比如,支持2016年的Ubuntu 16.04 LTS的ROS Kinetic Kame具有直到
2021年5月的5年的支持期间。
在2018年发布的新的Linux版本和ROS LTS版本达到稳定的2019年之前推荐的组
合如下:
■■ 操作系统:Ubuntu 16.04 Xenial Xerus23 (LTS) 或 Linux Mint 18.x
■■ ROS版本:ROS Kinetic Kame24
2. ROS Kinetic 安装
2.1源码安装教程
- Installing bootstrap dependencies
sudo apt-get install python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential
- Initializing rosdep
$ sudo rosdep init
$ rosdep update
- Create a catkin Workspace
$ mkdir ~/ros_catkin_ws
$ cd ~/ros_catkin_ws
- Desktop-Full Install(有坑)
$ rosinstall_generator desktop_full --rosdistro kinetic --deps --wet-only --tar > kinetic-desktop-full-wet.rosinstall
$ wstool init -j8 src kinetic-desktop-full-wet.rosinstall
- Resolving Dependencies
$ rosdep install --from-paths src --ignore-src --rosdistro kinetic -y
- Building the catkin Workspace
$ ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release
$ source ~/ros_catkin_ws/install_isolated/setup.bash
- Update the workspace
$ mv -i kinetic-desktop-full-wet.rosinstall kinetic-desktop-full-wet.rosinstall.old
$ rosinstall_generator desktop_full --rosdistro kinetic --deps --wet-only --tar > kinetic-desktop-full-wet.rosinstall
$ diff -u kinetic-desktop-full-wet.rosinstall kinetic-desktop-full-wet.rosinstall.old
$ wstool merge -t src kinetic-desktop-full-wet.rosinstall
$ wstool update -t src
- Rebuild your workspace
$ ./src/catkin/bin/catkin_make_isolated --install
$ source ~/ros_catkin_ws/install_isolated/setup.bash
conda config --set auto_activate_base false
conda activate 环境的名称
2.2 教程常规安装
坑少好用
2.3 简易安装
$ wget https://raw.githubusercontent.com/ROBOTIS-GIT/robotis_tools/master/install_ros_kinetic.sh
$ chmod 755 ./install_ros_kinetic.sh
$ bash ./install_ros_kinetic.sh
3.测试
3.1 环境设置
$ gedit ~/.bashrc
尾部添加下面内容:
# Set ROS Kinetic
source/opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.bash
# Set ROS Network
export ROS_HOSTNAME=localhost
export ROS_MASTER_URI=http://localhost:11311
# Set ROS alias command
alias cw='cd ~/catkin_ws'
alias cs='cd ~/catkin_ws/src'
alias cm='cd ~/catkin_ws&&catkin_make'
3.2ROS操作测试
新终端1:进入ROS
$ roscore
新终端2:打开乌龟GUI
rosrun turtlesim turtlesim_node
新终端3:调用键盘按键
$ rosrun turtlesim turtle_teleop_key
查看节点
$ rqt _ graph
终止:
CTRL+C
4.TurtleBot3-Burger
4.1安装相关的依赖包和TurtleBot3功能包
$ sudo apt-get install ros-kinetic-joy ros-kinetic-teleop-twist-joy ros-kinetic-teleop-twist-keyboard ros-kinetic-laser-proc ros-kinetic-rgbd-launch ros-kinetic-depthimage-to-laserscan ros-kinetic-rosserial-arduino ros-kinetic-rosserial-python ros-kinetic-rosserial-server ros-kinetic-rosserial-client ros-kinetic-rosserial-msgs ros-kinetic-amcl ros-kinetic-map-server ros-kinetic-move-base ros-kinetic-urdf ros-kinetic-xacro ros-kinetic-compressed-image-transport ros-kinetic-rqt-image-view ros-kinetic-gmapping ros-kinetic-navigation
$ cd ~/catkin_ws/src/
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
$ cd ~/catkin_ws && catkin_make
4.2使用
export TURTLEBOT3_MODEL=burger
export ROS_HOSTNAME=XXX.XXX.XX.XX
export ROS_MASTER_URI=http://${ROS_HOSTNAME}:11311
roscore
小车端
ssh ubuntu@192.168.43.211
PC端:
~/catkin_ws/src/turtlebot3/turtlebot3_teleop/nodes$ python turtlebot3_teleop_key
export TURTLEBOT3_MODEL=burger
roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml
4.3 使用RViz 仿真 TurtleBot3
$ export TURTLEBOT3_MODEL=burger
$ roslaunch turtlebot3_fake turtlebot3_fake.launch
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch