查看: 5729|回复: 2

[HCRbot系列教程] HCRbot 系列 3──HCRbot 上位机 PC 端软件设置

[复制链接]
本帖最后由 铁熊 于 2019-7-7 10:55 编辑

这是HCRbot系列的第3篇。

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


这一节主要讲 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 目录下。

[Bash shell] 纯文本查看 复制代码
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` 软件里面修改,如下图:

ubuntu-source.png

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

最后执行更新:

[Bash shell] 纯文本查看 复制代码
sudo apt-get update
sudo apt-get upgrade


### 安装 SSH

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

[Bash shell] 纯文本查看 复制代码
sudo apt-get install openssh-client
sudo service ssh start


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

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


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

### 其他软件

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

## 安装 ROS 及相关包

### 安装 ROS

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

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

[Bash shell] 纯文本查看 复制代码
wget [url=https://raw.githubusercontent.co]https://raw.githubusercontent.co[/url] ... tall_ros_kinetic.sh
chmod +x ./install_ros_kinetic.sh
bash ./install_ros_kinetic.sh


ros-install.png

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

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

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

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

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



### 安装 HCRbot 的 ROS 依赖包

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

[Bash shell] 纯文本查看 复制代码
wget [url=https://raw.githubusercontent.co]https://raw.githubusercontent.co[/url] ... 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:http://wiki.ros.org/rplidar

[Bash shell] 纯文本查看 复制代码
cd ~/catkin_ws/src
git clone [url=https://github.com/robopeak/rplidar_ros.git]https://github.com/robopeak/rplidar_ros.git[/url]
cd ~/catkin_ws
catkin_make


### 安装 RealSense ROS 包

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

[Bash shell] 纯文本查看 复制代码
sudo apt-get install ros-kinetic-realsense-camera


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

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

### 安装 hcr_ros 包

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

[Bash shell] 纯文本查看 复制代码
cd ~/catkin_ws/src/
git clone [url=https://github.com/chenzhongxian/hcr_ros.git]https://github.com/chenzhongxian/hcr_ros.git[/url]
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 文件,执行如下命令:

[Bash shell] 纯文本查看 复制代码
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 运行在远程主机上。

[Remote PC] 编辑 .bashrc 文件:

[Bash shell] 纯文本查看 复制代码
gedit ~/.bashrc


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

network_configuration.png

[Remote PC] source .bashrc文件:

[Bash shell] 纯文本查看 复制代码
source ~/.bashrc


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

## 参考

  • Turtlebot 3 wiki:PC Software Setup:
  • http://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服务:
  • http://hahaya.github.io/ubuntu-start-ssh-service
  • 对udcvideo驱动打补丁:http://wiki.ros.org/librealsense#Installation_Prerequisites


未完待续……

Forgotten  高级技匠

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

继续前排围观大神
回复 支持 反对

使用道具 举报

Angelo  初级技匠

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

跪了, 专门为HCR写了一个ROS包...
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2019 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail