目录
turtlebot 2i 安装*
安装完Ubuntu16.04后
新安装的Ubuntu系统请先更新一次软件源,打开终端(按左上角搜索terminal或者直接按快捷键ctrl+alt+t),执行以下命令,期间需要输入密码,默认密码是turtlebot
$ sudo apt update
$ sudo apt upgrade
之后安装git:
$ sudo apt install git
然后就可以用git下载我们提供的脚本文件了:
$ git clone https://github.com/RoboticsWars/Installation_Setup.git
安装ROS Kinetic
可以参考官网安装:http://wiki.ros.org/cn/kinetic/Installation/Ubuntu
参考:
1、设置网络时间协议(NTP,Network Time Protocol)
在ROS官方安装项目中虽然没有包括NTP,但为了缩小PC间通信中的ROS Time的误 差,下面我们设置NTP4。设置方法是安装chrony之后用ntpdate命令指定ntp服务器即 可。这样一来会表示服务器和当前计算机之间的时间误差,进而会调到服务器的时间。这 就是通过给不同的PC指定相同的NTP服务器,将时间误差缩短到最小的方法。
$ sudo apt-get install -y chrony ntpdate
$ sudo ntpdate -q ntp.ubuntu.com
2、添加代码列表
在ros-latest.list添加ROS版本库。打开新的终端窗口,输入如下命令。
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/ sources.list.d/ros-latest.list'
如果用户正在使用Linux Mint版本18.x,请使用以下命令。上面提到的代码的$(lsb_ release -sc) 会获得Linux发行版信息的代号,而Linux Mint 18.x使用了Ubuntu的 xenial代码,所以可以添加与Ubuntu相同的源代码列表。
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu xenial main" > /etc/apt/sources.list.d/roslatest.list'
3、设置公钥(Key)
为了从ROS存储库下载功能包,下面添加公钥 。作为参考,以下公钥可以根据服务器 的操作发生变更,请参考官方wiki页面
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A389552 3BAEEB01FA116
4、更新软件包索引
现在用户已经将ROS版本库地址放在代码列表中,我们建议在安装ROS之前刷新软件 包列表的索引并升级所有当前安装的Ubuntu软件包,但这不是必选项
$ sudo apt-get update && sudo apt-get upgrade -y
5、安装ROS Kinetic Kame
使用以下命令安装台式机的ROS功能包。这包括ROS、rqt、RViz、机器人相关的 库、仿真和导航等等。
$ sudo apt-get install ros-kinetic-desktop-full
上面的安装只包含基本的rqt,但是笔者将安装所有额外的rqt相关的功能包。用下面 的命令安装所有rqt相关的功能包,可以很方便地使用各种rqt插件
$ sudo apt-get install ros-kinetic-rqt*
6、初始化rosdep
在使用ROS之前,必须初始化rosdep。rosdep是一个通过在使用或编译ros的核心组 件时轻松安装依赖包来增强用户便利的功能
$ sudo rosdep init
$ rosdep update
7、安装rosinstall
这是安装ROS的各种功能包的程序。它是被频繁使用的有用的工具,因此务必要安装它
$ sudo apt-get install python-rosinstall
8、加载环境设置文件
下面加载环境设置文件。里面定义着ROS_ROOT和ROS_PACKAGE_PATH等环境变量
$ source /opt/ros/kinetic/setup.bash
7、创建并初始化工作目录并加载与catkin构建系统相关的环境文件
$ source ~/catkin_ws/devel/setup.bash
8、测试安装结果
至此安装ros大功告成
接下来
install_ros.sh和
inatall_astra.sh和
install_turtlebot2i_astra.sh
这几个脚本文件可以安装好turtlebot2i的功能包,但不包括ssh和vino这类远程通信工具,也不包括配置局域网IP
执行相应脚本文件
然后就可以用git下载我们提供的脚本文件了:
$ git clone https://github.com/RoboticsWars/Installation_Setup.git
最后进入Installation_Setup目录,执行相应脚本文件:
$ cd ~/Installation_Setup
$ ./install_ros.sh
$ ./inatall_astra.sh
$ ./install_turtlebot2i_astra.sh
手动安装turtlebot相关
安装GTK
sudo apt-get install build-essential libgtk-3-dev
安装远程控制相关包(ssh、vino)
sudo apt install vino ssh gedit
VINO配置
$ vino-preferences
勾选如下选项:
Allow other users to view your desktop
Allow other users to control your desktop
不选如下项:
You must confirm each access to this machine.
Disable require-encryption if your VNC client does not support it.
RealSense ROS包安装
参考:http://wiki.ros.org/librealsense#Installation_Prerequisites
wget -O enable_kernel_sources.sh http://bit.ly/en_krnl_src
bash ./enable_kernel_sources.sh
安装RealSense相关包
$sudo apt install ros-kinetic-librealsense ros-kinetic-realsense-camera
TurtleBot 2i ROS包安装
安装依赖包
$ sudo apt install ros-kinetic-turtlebot* libudev-dev ros-kinetic-find-object-2d ros-kinetic-rtabmap-ros ros-kinetic-moveit ros-kinetic-octomap-ros ros-kinetic-manipulation-msgs ros-kinetic-controller-manager python-wxgtk3.0
$ sudo apt install ros-kinetic-turtlebot* libudev-dev ros-kinetic-find-object-2d ros-kinetic-rtabmap-ros ros-kinetic-moveit ros-kinetic-octomap-ros ros-kinetic-manipulation-msgs ros-kinetic-controller-manager python-wxgtk3.0
安装TurtleBot2i源码
$ source /opt/ros/kinetic/setup.bash
$ cd ~
$ mkdir -p ~/turtlebot2i/src
$ cd ~/turtlebot2i/src
$ git clone https://github.com/Interbotix/turtlebot2i.git .
$ git clone https://github.com/Interbotix/arbotix_ros.git -b turtlebot2i
$ git clone https://github.com/Interbotix/phantomx_pincher_arm.git
$ git clone https://github.com/Interbotix/ros_astra_camera -b filterlibrary
$ git clone https://github.com/Interbotix/ros_astra_launch
$ cd ~/turtlebot2i
$ rosdep install --from-paths src --ignore-src -r -y
$ catkin_make
bashrc配置
添加如下行到~/.bashrc 文件(可用系统自带的编辑器gedit打开:$ gedit ~/.bashrc):
source /opt/ros/kinetic/setup.bash
alias goros='source devel/setup.sh'
export TURTLEBOT_3D_SENSOR=astra
export TURTLEBOT_3D_SENSOR2=sr300
export TURTLEBOT_BATTERY=None
export TURTLEBOT_STACKS=interbotix
export TURTLEBOT_ARM=pincher
若需要在局域网中运行ROS,请设定一台机器为主机,并用ifconfig命令查看ROS系统联网的每一台机器的IP(形如192.168.x.xx),并在~/.bashrc中继续添加:
#export ROS_MASTER_URI=http://主机IP:11311
#export ROS_HOSTNAME=当前机器IP
dialout权限设置
$sudo usermod -a -G dialout turtlebot
udev rules设置
$ cd ~/turtlebot2i/
$ goros
$ rosrun kobuki_ftdi create_udev_rules
$ rosrun astra_camera create_udev_rules
$ cd ~/turtlebot2i/src/turtlebot2i_misc
$ gedit 99-turtlebot2i.rules
重插ArbotiX和Kobuki的usb线,检查相应的端口:
udevadm info -a -n /dev/ttyUSB0 | grep ‘{serial}’ | head -n1
udevadm info -a -n /dev/ttyUSB1 | grep ‘{serial}’ | head -n1
序列号有kobuki字样的就是底盘序列号,另一个为机械臂驱动板序列号。将它们复制到99-turtlebot2i.rules文件相应的位置。然后复制此文件到系统目录:
$ sudo cp ./99-turtlebot2i.rules /etc/udev/rules.d/
启动demo
运行Demo程序:
综合Demo程序
$ roslaunch turtlebot2i_bringup turtlebot2i_demo1.launch
在命令后可添加选项,选项之间用空格隔开:
new_rtabmap:=true 创建新地图;
localization:=true 使用旧地图给机器人定位,可以进行导航;
rviz:=true 加载RVIZ进行可视化显示;
rtabmapviz:=true 加载RTAB-MAP的可视化界面。
例如:
$ roslaunch turtlebot2i_bringup turtlebot2i_demo1.launch new_rtabmap:=true
开始创建新地图,然后用键盘或者手柄遥控:
$ roslaunch turtlebot_teleop keyboard_teleop.launch 用键盘控制
$ roslaunch turtlebot_teleop xbox360_teleop.launch 用罗技F710手柄控制
机械臂部分Demo演示
$ roslaunch turtlebot2i_bringup turtlebot2i_basic.launch
$ roslaunch turtlebot2i_moveit_config turtlebot_moveit.launch sim:=false
更多的关于turtlebot2i的教程可以参考:https://www.ncnynl.com/archives/201803/2335.html
Turtlebot 2i Mobile ROS Platform
https://learn.trossenrobotics.com/projects/189-turtlebot2i-assembly-guide.html