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)
roslaunch hcr_bringup 3dsensor.launch
你好,关于深度摄像机貌似有些问题。按照您github上的代码,好像不是您最新的代码(和截图里面的程序有些出路),会报一些错误,不知能否更新一下。谢谢。
页:
[1]