开放能力
开发平台
行业应用
生态合作
开发与教学
资讯 社区 控制台
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术
AR与VR
数据智能
场景方案
部署方案
行业应用
智能教育
智能医疗
智能零售
智能工业
企业服务
智能政务
信息服务
智能园区

循迹导航

范例程序app_tracking和guide_receiver配套使用可以实现循迹导航功能(按录制地图时的路线行走),由app_tracking进行轨迹存储、调用,guide_receiver负责接收导航信号,源代码均提供在程序包中。

  • 轨迹存储命令与记录地图相同:
./app_tracking -sensor_type XP2 -cam_calib_path xxxxx.yaml -pb_save /tmp/room.pb
  • 如果需要在轨迹中存储路径点,可在对应的位置按下字母键ABCDE(最多5个,用于从任意地点走向对应路径点),若同一个路径点的字母被第二次按到,将会开启路径闭合,认为第一次按下的位置和第二次按下的位置处于同一个地点。强制路径闭合有利于帮助建立更准确的轨迹地图。(若不在录制过程中设置路径点,则之后导航时系统默认走完整个轨迹)
  • 录制完轨迹后,按ESC键退出。
  • 轨迹导航的使用可分为两种:
  • 使用guide_receiver通过UDP接收导航信息
  • 使用app_tracking直接对步科Dilili底盘控制导航

使用guide_receiver进行导航

  • 开启另一个命令行窗口,运行
./guide_receiver
  • guide_receiver 是命令行的接收客户端(也是利用traker.h里面的函数实现),通过UDP传输的方式从app_tracking处接收导航信息,并打印在命令行窗口中。
  • guide_receiver 用于接收UDP协议的默认端口是8889,IP地址没有限制,收到的信息格式为: guide message from [IP]: [PORT][a, b, c]
  • A为当前位置到下一个特征点的距离
  • B为导航指示的偏离角度(从-180度到+180度,左负右正,正中间为0度)
  • C为导航状态(0为失败,1为正确,2为停止,3为到达目的地结束)。
  • 对应的发送端app_tracking命令如下:
./app_tracking -sensor_type XP2 -cam_calib_path xxxxx.yaml -pb_load /tmp/room.pb -path_follower walk
  • 程序启动后,若录制地图时没有设置路径点,则程序会自动进行定位,并按照预设路径进行导航,若为闭合轨迹,则会无限循环直至退出。若录制地图时设置过路径点,则需先按一下所需要行走的路径点对应字母,系统会给出导航,行走至对应点后会进入待机状态。

使用app_tracking直接控制步科底盘

  • 步科Dilili智慧桌是一款采用双轮驱动的实验机器人平台。其控制系统已经集成到了程序包中。
  • 首先将步科底盘控制USB线连接到PC端,修改读写权限:
sudo chmod a+rw /dev/ttyUSB0
  • 然后启动app_tracking程序:
./app_tracking -sensor_type XP2 -cam_calib_path xxxxx.yaml -pb_load /tmp/room.pb -path_follower robot
  • 程序启动后,若录制地图时没有设置路径点,则程序会自动进行定位,机器人底盘会按照预设路径行走,若为闭合轨迹,则会无限循环直至退出。若录制地图时设置过路径点,则需先按一下所需要行走的路径点对应字母,机器人底盘会按照导航行走,行走至对应点后会进入待机状态。
  • 机器人在行走的过程中,会启动避障模式,即如果有物体进入视觉模组前方0.75米范围内,则机器人会停止行走并停止特征点跟踪以防SLAM结果漂移。
上一篇
功能说明
下一篇
深度图+障碍物提示: