服务机器人与机械臂开发全解析
服务机器人开发
服务从节点
服务从节点中受监控的节点与机器人的控制直接相关。以TurtleBot3 Carrier3为例,执行SLAM和导航时所执行的节点是主要节点。为开发TurtleBot3 Carrier,对TurtleBot3源代码进行了修改,主要使用的包如下:
| 包相关说明 | 详情 |
| ---- | ---- |
| 包的用途 | 用于创建配送服务机器人 |
| 包的结构 | 图中每个箭头代表一个子包 |
| 修改需求 | 部分包需要修改以实现配送服务机器人功能 |
为创建配送服务机器人,对源代码进行了如下修改:
- 激光传感器距离处理 : poll()
函数使用LDS(HLS - LFCD2)激光传感器处理附近物体的距离测量值。由于TurtleBot3 Carrier的LDS周围有支柱,在LDS运行时会识别这些支柱,影响SLAM或导航结果。因此,当检测到物体距离小于0.15时,将检测值设为 ‘0’,在导航算法中,距离值 ‘0’ 被识别为 ‘无物体’,从而消除支柱对SLAM或导航的影响。相关代码如下:
hld_lfcd_lds_driver/src/hlds_laser_publisher.cpp
void LFCDLaser::poll(sensor_msgs::LaserScan::Ptr scan)
{
…omitted…
while (!shutting_down_ && !got_scan