jarvis_chan 发表于 2017-10-7 14:41:51

HCRbot 系列7──启动 HCRbot 机器人


这篇是 HCRbot 机器人系列的第 7 篇,经过前面章节的介绍,HCRbot 机器人的软件部分都已经设置完成啦,接下来这一章节就可以介绍如何控制 HCRbot 机器人的运动了。

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

- HCRbot 系列1──HCRbot 简介:[https://mc.dfrobot.com.cn/thread-26938-1-1.html](https://mc.dfrobot.com.cn/thread-26938-1-1.html)
- HCRbot 系列2──HCRbot 硬件介绍与设置:[https://mc.dfrobot.com.cn/thread-26939-1-1.html](https://mc.dfrobot.com.cn/thread-26939-1-1.html)
- HCRbot 系列3──HCRbot 上位机 PC 端软件设置:[https://mc.dfrobot.com.cn/thread-26975-1-1.html](https://mc.dfrobot.com.cn/thread-26975-1-1.html)
- HCRbot 系列4──HCRbot下位机设置(树莓派版):[https://mc.dfrobot.com.cn/thread-27020-1-1.html](https://mc.dfrobot.com.cn/thread-27020-1-1.html)
- HCRbot 系列5──HCRbot下位机设置(Odroid XU4版):[https://mc.dfrobot.com.cn/thread-27161-1-1.html](https://mc.dfrobot.com.cn/thread-27161-1-1.html)
- HCRbot 系列6──HCRbot 底层驱动 OpenCR 设置:[https://mc.dfrobot.com.cn/thread-27296-1-1.html](https://mc.dfrobot.com.cn/thread-27296-1-1.html)

## 测试

以上所有步骤都完成后,我们的 HCRbot 就可以启动啦。在正式玩各种好玩的功能前,我们先测试一下。

轻按 OpenCR 上的 SW1 按钮,看看 HCRbot 是否会前进1米;然后再轻按 OpenCR 上的 SW2 按钮,看看 HCRbot 是否会旋转180度,如果都没有问题的话,那么恭喜你,HCRbot 可以运行啦。

## 启动 HCRbot

运行 roscore:

``` sh
roscore
```

ssh 进入 HCRbot 机器人,开启 HCRbot 机器人:

``` sh
roslaunch hcr_bringup hcr_robot.launch
```

*hcr_robot.launch* 文件中,主要运行了与 OpenCR 串口通信的节点,以及速度控制命令相关的节点。

在上位机上查看是否有 IMU 的返回数据:

``` sh
rostopic echo /imu
```



## 可视化

为简化 HCRbot 在 ROS 中的 URDF 建模,在 hcr_description 包中,只建立了 HCRbot 的简单模型,URDF 文件按中只包含了 base_link 和 base_footprint 的 tf 关系。查看 HCRbot 模型方法很简单:

在远程主机上打开 Rviz 可视化界面:

``` sh
roslaunch hcr_bringup hcr_model_view.launch
```



其他传感器的 tf,包括 Kinect、R200 和 RPLIDAR 等,都在相应的 launch 文件中,手动通过 static_transform_publisher 来发布,接下来会介绍。

## 启动 HCRbot 上的传感器

启动 RPLIDAR A1/A2 激光雷达:

``` sh
export HCR_LASER_SENSOR=rplidar # default
roslaunch hcr_bringup laser.launch
```

如下图红框中为 tf 发布的 RPLIDAR 激光雷达在 HCRbot 上的坐标转换关系,即为 RPLIDAR 激光雷达在 HCRbot 的上位置,大家可以根据自己的安装位置自行修改。



启动 Xbox 360 Kinect 深度摄像机(默认):

``` sh
export HCR_3D_SENSOR=kinect # default
roslaunch hcr_bringup 3dsensor.launch
```

如下图红框中为 tf 发布的 Kinect 深度摄像头在 HCRbot 上的坐标转换关系,即为 Kinect 深度摄像头在 HCRbot 上的位置,大家可以根据自己的安装位置自行修改。



启动 RealSense R200 深度摄像机:

``` sh
export HCR_3D_SENSOR=r200
roslaunch hcr_bringup 3dsensor.launch
```

如下图红框中为 tf 发布的 R200 深度摄像头在 HCRbot 上的坐标转换关系,即为 R200 深度摄像头在 HCRbot 上的位置,大家可以根据自己的安装位置自行修改。



## 自定义传感器

正如介绍章节所说,HCRbot 项目采用**模块化**设计的方案,大家可以自行添加其他传感器。

比如,你用的其他的激光雷达,你只需要在路径 *hcr_bringup/launch/includes/laser* 下新建一个 *$.launch.xml* 文件,其中 `$` 为你用的激光雷达的名字,比如 lds,在里面添加相应的激光雷达的驱动代码和 tf 变换即可。具体可以参考 *laser* 文件夹下的 *rplidar.launch.xml* 文件。

当你想要使用 lds 激光雷达时,只需要在 Terminal 中输入如下代码:

``` sh
export HCR_LASER_SENSOR=lds
```

或者直接在 *~/.bashrc* 文件中修改 HCR_LASER_SENSOR 参数为 lds。

视觉传感器也类似,只是文件路径为 *hcr_bringup/launch/includes/3dsensor*。可以参考该文件夹下的 *kinect.launch.xml* 和 *r200.launch.xml* 文件,不再赘述。

## 参考资料

- 关于 URDF 的介绍说明,可以参看:[https://wiki.ros.org/urdf](https://wiki.ros.org/urdf)。- 关于 tf 和 static_transform_publisher 的介绍说明,可以查看:[https://wiki.ros.org/tf](https://wiki.ros.org/tf)。
- 关于 RPLIDAR A1/A2 在 ROS 中的使用说明,可以查看:[https://wiki.ros.org/rplidar](https://wiki.ros.org/rplidar)
- 关于 Xbox 360 Kinect 在 ROS 中的使用说明,可以查看:[https://wiki.ros.org/freenect_stack](https://wiki.ros.org/freenect_stack)
- 关于 RealSense R200 在 ROS 中的使用说明,可以查看:[https://wiki.ros.org/RealSense](https://wiki.ros.org/RealSense)










qwe143109 发表于 2017-12-30 22:22:47

roslaunch hcr_bringup 3dsensor.launch

你好,关于深度摄像机貌似有些问题。按照您github上的代码,好像不是您最新的代码(和截图里面的程序有些出路),会报一些错误,不知能否更新一下。谢谢。
页: [1]
查看完整版本: HCRbot 系列7──启动 HCRbot 机器人