jarvis_chan 发表于 2017-8-22 13:38:21

HCRbot 系列 3──HCRbot 上位机 PC 端软件设置

这是HCRbot系列的第3篇。

下面是目前已经写好的所有篇章链接:


[*]HCRbot系列1──HCRbot简介
[*]HCRbot系列2──HCRbot硬件介绍与设置
[*]HCRbot系列3──HCRbot PC端软件设置


这一节主要讲 HCRbot 的PC端软件设置。

HCRbot 远程端 PC 采用的是 Ubuntu 16.04 LTS 的系统,所以对应的 ROS 版本为 Kinetic,下文不做特殊说明,都是在 Ubuntu 16 和 ROS Kinetic 上进行开发。

## 安装 Ubuntu 及相关软件

### 安装 Ubuntu

从下面的连接下载 Ubuntu 16.04 LTS:

https://www.ubuntu.com/download/desktop

安装方法请参考下面的链接:

https://www.ubuntu.com/download/desktop/install-ubuntu-desktop

### 更改 Ubuntu 软件源

由于国内的网络环境会导致 Ubuntu 下载软件或者更新比较慢,所以我们要更改 Ubuntu 的默认的软件源,提高下载速度。软件源文件路径为: /etc/apt/sources.list 。

针对教育网用户,参考中科大Ubuntu软件源,已为您准备好USTC中科大的软件源: sources_ustc.list ,请将 sources_ustc.list 复制到 /etc/apt/sources.list 目录下。

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo rm /etc/apt/sources.list
sudo cp sources_ustc.list /etc/apt/sources.list

或者也可以直接在 Ubuntu 的 `Software & Updates` 软件里面修改,如下图:



其他网络用户,可以参考(https://wiki.ubuntu.org.cn/%E6%A8%A1%E6%9D%BF:16.04source-链接已失效)更改为其他的源。

最后执行更新:

sudo apt-get update
sudo apt-get upgrade

### 安装 SSH

安装 SSH 很简单,在终端执行下面的命令就行:

sudo apt-get install openssh-client
sudo service ssh start

然后就可以使用 SSH 了,是不是很简单!

更加详细的介绍以及安装方法,可以参考:

Ubuntu下开启ssh服务:https://hahaya.github.io/ubuntu-start-ssh-service

### 其他软件

其他常用的 Ubuntu 软件,之后会有专门一个章节来讲解我自己常用的软件安装方法,这一节只关注 ROS 相关内容。

## 安装 ROS 及相关包

### 安装 ROS

#### 方法一:一键脚本安装(推荐)

可以使用一件脚本安装: install_ros_kinetic.sh 。这个文件已经根据 turtlebot 3 上的 wiki 脚本做了一些修改,可以方便快速的安装 ROS 到你的电脑上。

wget https://raw.githubusercontent.co ... tall_ros_kinetic.sh
chmod +x ./install_ros_kinetic.sh
bash ./install_ros_kinetic.sh



等待安装完成,如果遇到错误,重新运行以上脚本就行。

注意:中间过程可能会让你输入密码,请根据提示输入密码。

这个脚本中设置了一些快捷键,方便后续 ROS 代码的编译,比如在终端中可以用缩写 cm 代替 catkin_make 命令来编译 ROS 包了。

#### 方法二:手动安装

可以参考 ROS 官方的安装方法,一步一步进行安装:


### 安装 HCRbot 的 ROS 依赖包

在后面的教程中,比如使用 Xbox 360 手柄去控制机器人运动,或者建图、导航等,会用到一些其他的 ROS 包,这里为了方便,就一次性安装了:

wget https://raw.githubusercontent.co ... pendent_packages.sh
chmod +x ./install_ros_dependent_packages.sh
bash ./install_ros_dependent_packages.sh

具体安装了哪些包,可以参见 install_ros_dependent_packages.sh 文件。

### 安装 rplidar_ros 包

rplidar_ros 是激光雷达 RPLIDAR A2 的 ROS 驱动包,通过这个包可以获得激光雷达的扫描数据。详细介绍请查看 ROS 官方 wiki:https://wiki.ros.org/rplidar

cd ~/catkin_ws/src
git clone https://github.com/robopeak/rplidar_ros.git
cd ~/catkin_ws
catkin_make

### 安装 RealSense ROS 包

这一步主要安装 RealSense R200 的 ROS 驱动包,参考官方 realsense_camera wiki,安装方法非常简单:

sudo apt-get install ros-kinetic-realsense-camera

这一步安装成功的包,在驱动 R200 摄像头的时候可能会出现问题,根据官方 wiki 说明,需要 对udcvideo驱动打补丁。

具体操作可以参考上述 wiki。

### 安装 hcr_ros 包

可以从我的 github 上下载 hcr_ros 包。这部份代码正在逐步完善和添加中,之后有时间我会添加更多案例代码进去。

cd ~/catkin_ws/src/
git clone https://github.com/chenzhongxian/hcr_ros.git
cd ~/catkin_ws && catkin_make

## USB 权限与别名设置

我们在使用 USB 串口相关的包的时候,有时候会发现串口号不对,比如有时候串口号是 ttyACM0 ,有时候又是 ttyACM1 。如果每次去手动更改的话,很麻烦的,那有没有方法可以让他自动识别呢?

方法是有的,我们可以给每个连接串口设备一个别名,那么在 ROS 程序中,我们只要去连接这个别名就好。比如 OpenCR 这块开发板的串口号为 ttyACM* ,我们给他起个别名叫 opencr ,那么以后每次只要连接 opencr 的串口号就行了。

具体方法可以参考:Prevent modem manager to capture usb serial devices

这里我给大家提供了一种简便的方法,找到 99-opencr-cdc.rules 和 rplidar.rules 文件,执行如下命令:

cp 99-opencr-cdc.rules /etc/udev/rule.d/
cp rplidar.rules /etc/udev/rule.d/
sudo udevadm control --reload-rules
sudo udevadm trigger

上述命令分别给 OpenCR 板子和 RPLIDAR 设置了别名: opencr 和 rplidar 。

## ROS 通信设置

我们将 ROS Master 运行在远程主机上。

编辑 .bashrc 文件:

gedit ~/.bashrc

请将 ROS_MASTER_URI 和 ROS_HOSTNAME 中的IP地址设置为本机地址,如下图所示:



source .bashrc文件:

source ~/.bashrc

至此,远程上位机设置就结束啦。

## 参考


[*]Turtlebot 3 wiki:PC Software Setup:
[*]https://turtlebot3.readthedocs.io/en/latest/pc_software.html(false)
[*]Prevent modem manager to capture usb serial devices;https://linux-tips.com/t/prevent ... erial-devices/284/2(链接失效)
[*]Ubuntu下开启ssh服务:
[*]https://hahaya.github.io/ubuntu-start-ssh-service
[*]对udcvideo驱动打补丁:https://wiki.ros.org/librealsense#Installation_Prerequisites




未完待续……

Forgotten 发表于 2017-8-22 17:18:52

继续前排围观大神

Angelo 发表于 2017-9-6 19:06:50

跪了, 专门为HCR写了一个ROS包...
页: [1]
查看完整版本: HCRbot 系列 3──HCRbot 上位机 PC 端软件设置