跳到内容 跳到主导航 跳到页脚

导航巡逻

导航

组件名称: NavigationComponent

组件描述: 导航组件,用于控制机器人前往指定位置点。

备注:需要使用底盘的功能组件,都是互斥的。比如底盘行走、导航、回冲、焦点跟随等。请不要同时使用他们,会造成错误

使用示例:

public onStatusUpdate = (event?: ComponentEvent): boolean => {
    //TODO: 状态处理
    return true;
};

public onFinish = (result?: ComponentEvent): boolean => {
    //TODO: 结果处理
    return true;
};

public render() {
     let navigationParam = new NavigationParam(destination, undefined
            , undefined, undefined, undefined, undefined, undefined, undefined
            , linearSpeed, angularSpeed);
    return (
        <>
            <NavigationComponent
                param={param}
                onStatusUpdate={this.onStatusUpdate}
                onFinish={this.onFinish}
            />
        </>
    );
}

属性:

  • param:组件参数,类型为NavigationParam
  • onStatusUpdate:组件状态回调
  • onFinish:组件执行结束回调

参数说明:

  • destination:前往目的地名称,必填项,不能为空,否则会抛出崩溃异常
  • coordinate_deviation:目的地范围,在目的地范围内均认为正常到达,默认0.5米
  • moving_timeout_time:机器人未移动超时时间,默认20000毫秒,超过该时间未移动,此次导航失败
  • max_avoid_count:堵死状态检测次数,机器人在被堵死后会每隔一段时间检测一次,超过该次数后还是被堵死,则认为导航失败,默认5次
  • avoid_interval_time:堵死状态检测间隔时间,默认1000毫秒
  • auto_reset_estimate:导航过程中如果发生定位丢失,是否尝试自动重定位,默认true
  • param_reset_estimate_count:重定位尝试次数,默认5次
  • get_distance_interval_time:距离信息上报间隔时间,默认1000毫秒
  • param_linear_speed:导航线速度,可不填写,范围0.1-1.2 m/s
  • param_angular_speed:导航角速度,可不填写,范围0.2-1.8 rad/s(1rad=180°/π,约 57.3°)
  • param_is_adjust_angle:到达目标点时机器的朝向是按照前进方向还是设置位置点时的方向,true 前进方向,false 设置位置点时的方向,默认false
  • param_is_need_avoid_notify_immediately:被障碍物堵死立即上报状态,默认false (1.34.0版本引入)
  • param_destination_range:当目标点不可到达时,停在目标点附近的距离范围,默认0米(1.34.0版本引入)
  • obs_distance:最大避障距离,距离目标的障碍物小于该值时,机器人停止,不传则或使用默认 0.75,单位米(10.3 版本 ROM,2.91.0版本引入)
  • pos_tolerance:导航到目的地时,点位偏差值范围,不传则使用默认值0.15,单位米(10.3 版本 ROM,2.91.0版本引入)
  • angle_tolerance:导航到目的地时,角度偏差值范围,不传则使用默认值0.05,单位米(10.3 版本 ROM,2.91.0版本引入)

状态说明:

通过ComponentEvent.status获取到状态码:

  • 32730001:开始导航,常量定义 ComponentStatusConst.STATUS_START_NAVIGATION
  • 32730011:机器人被障碍物堵死,常量定义 ComponentStatusConst.STATUS_NAVIGATION_AVOID_START
  • 32730003:障碍物已移除,可正常前进,常量定义 ComponentStatusConst.STATUS_NAVIGATION_AVOID_END
  • 32730004:触发了避停,在遇到移动障碍物时会主动停止避让,常量定义 ComponentStatusConst.STATUS_OBSTACLES_AVOID
  • 32730002:堵死状态检测次数,常量定义 ComponentStatusConst.STATUS_NAVIGATION_AVOID
  • 32730009:定位丢失,常量定义 ComponentStatusConst.STATUS_ESTIMATE_LOST
  • 32730005:距目标点距离上报,常量定义 ComponentStatusConst.STATUS_DISTANCE_WITH_DESTINATION
  • 32730010:目标点已接近,常量定义 ComponentStatusConst.STATUS_NAVIGATION_NEAR_DESTINATION
  • 32730016:重定位成功,可继续导航,常量定义 ComponentStatusConst.STATUS_NAVIGATION_RESET_ESTIMATE_SUCCESS

结果说明

通过ComponentEvent.status获取到结果码:

  • 32610007:导航成功,ComponentEvent.data为人脸数据,常量定义 ComponentResultConst.RESULT_NAVIGATION_ARRIVED
  • 32610009:导航启动失败,常量定义ComponentResultConst.RESULT_NAVIGATION_FAILURE
  • -32610004:位置点名称无效,常量定义 ComponentErrorConst.ERROR_PARAMS_PLACE_NAME_INVALID
  • -32620001:当前未定位,常量定义 ComponentErrorConst.ERROR_NOT_ESTIMATE
  • -32620015:当前已在目标位置点范围内,常量定义 ComponentErrorConst.ERROR_NAVIGATION_ALREADY_IN_DESTINATION
  • -32620007:导航目标点不存在,常量定义 ComponentErrorConst.ERROR_DESTINATION_NOT_EXIST
  • -32600001:目前已经有导航在运行,常量定义 ComponentErrorConst.ERROR_REQUEST_RES_BUSY
  • -32600002:底盘资源已被占用,请检查是否有运动类的组件在运行,常量定义 ComponentErrorConst.ERROR_REQUEST_RES_FAILED
  • -32620002:导航目标点在地图外,常量定义 ComponentErrorConst.ERROR_NAVIGATION_OUT_MAP
  • -32620009:全局路径规划失败,常量定义 ComponentErrorConst.ERROR_NAVIGATION_GLOBAL_PATH_FAILED
  • -32620014:尝试重定位失败,常量定义 ComponentErrorConst.ERROR_NAVIGATION_RESET_ESTIMATE_FAIL
  • -32620008:机器人长时间未移动,常量定义 ComponentErrorConst.ERROR_DESTINATION_CAN_NOT_ARRIVE
  • -32620006:机器人长时间被障碍物堵死,常量定义 ComponentErrorConst.ERROR_NAVIGATION_AVOID_TIMEOUT
  • -32610011:参数解析失败,常量定义 ComponentErrorConst.ERROR_PARAMS_JSON_PARSER_ERROR

注意:开发中请使用常量定义进行结果及状态判断,以上出现的返回码在后续版本中有可能会发生变更

最低版本: 1.0.0

适用平台:

豹小秘mini招财豹豹小递max豹小秘DP

导航(头部朝向后面)

组件名称: NavigationBackComponent

组件描述: 导航组件,在导航过程中头部会转向后边,只在豹小秘机型上有效,在其它机型上效果等同NavigationComponent。

使用示例:

public onStatusUpdate = (event?: ComponentEvent): boolean => {
    //TODO: 状态处理
    return true;
};

public onFinish = (result?: ComponentEvent): boolean => {
    //TODO: 结果处理
    return true;
};

public render() {
    let param = new NavigationBackParam(destination);
    return (
        <>
            <NavigationBackComponent
                param={param}
                onStatusUpdate={this.onStatusUpdate}
                onFinish={this.onFinish}
            />
        </>
    );
}

属性:

  • param:组件参数,类型为NavigationBackParam
  • onStatusUpdate:组件状态回调
  • onFinish:组件执行结束回调

参数说明:

  • destination:前往目的地名称,必填项,不能为空,否则会抛出崩溃异常
  • coordinate_deviation:目的地范围,在目的地范围内均认为正常到达,默认0.5米
  • moving_timeout_time:机器人未移动超时时间,默认20000毫秒,超过该时间未移动,此次导航失败
  • max_avoid_count:堵死状态检测次数,机器人在被堵死后会每隔一段时间检测一次,超过该次数后还是被堵死,则认为导航失败,默认5次
  • avoid_interval_time:堵死状态检测间隔时间,默认1000毫秒
  • auto_reset_estimate:导航过程中如果发生定位丢失,是否尝试自动重定位,默认true
  • param_reset_estimate_count:重定位尝试次数,默认5次
  • get_distance_interval_time:距离信息上报间隔时间,默认1000毫秒
  • param_linear_speed:导航线速度,可不填写,范围0.1-1.2 m/s
  • param_angular_speed:导航角速度,可不填写,范围0.2-1.8 rad/s(1rad=180°/π,约 57.3°)

状态说明:

通过ComponentEvent.status获取到状态码:

  • 32730001:开始导航,常量定义 ComponentStatusConst.STATUS_START_NAVIGATION
  • 32730011:机器人被障碍物堵死,常量定义 ComponentStatusConst.STATUS_NAVIGATION_AVOID_START
  • 32730003:障碍物已移除,可正常前进,常量定义 ComponentStatusConst.STATUS_NAVIGATION_AVOID_END
  • 32730004:触发了避停,在遇到移动障碍物时会主动停止避让,常量定义 ComponentStatusConst.STATUS_OBSTACLES_AVOID
  • 32730002:堵死状态检测次数,常量定义 ComponentStatusConst.STATUS_NAVIGATION_AVOID
  • 32730009:定位丢失,常量定义 ComponentStatusConst.STATUS_ESTIMATE_LOST
  • 32730005:距目标点距离上报,常量定义 ComponentStatusConst.STATUS_DISTANCE_WITH_DESTINATION
  • 32730010:目标点已接近,常量定义 ComponentStatusConst.STATUS_NAVIGATION_NEAR_DESTINATION
  • 32730016:重定位成功,可继续导航,常量定义 ComponentStatusConst.STATUS_NAVIGATION_RESET_ESTIMATE_SUCCESS

结果说明

通过ComponentEvent.status获取到结果码:

  • 32610007:导航成功,ComponentEvent.data为人脸数据,常量定义 ComponentResultConst.RESULT_NAVIGATION_ARRIVED
  • 32610009:导航启动失败,常量定义ComponentResultConst.RESULT_NAVIGATION_FAILURE
  • -32610004:位置点名称无效,常量定义 ComponentErrorConst.ERROR_PARAMS_PLACE_NAME_INVALID
  • -32620001:当前未定位,常量定义 ComponentErrorConst.ERROR_NOT_ESTIMATE
  • -32620015:当前已在目标位置点范围内,常量定义 ComponentErrorConst.ERROR_NAVIGATION_ALREADY_IN_DESTINATION
  • -32620007:导航目标点不存在,常量定义 ComponentErrorConst.ERROR_DESTINATION_NOT_EXIST
  • -32600001:目前已经有导航在运行,常量定义 ComponentErrorConst.ERROR_REQUEST_RES_BUSY
  • -32600002:底盘资源已被占用,请检查是否有运动类的组件在运行,常量定义 ComponentErrorConst.ERROR_REQUEST_RES_FAILED
  • -32620002:导航目标点在地图外,常量定义 ComponentErrorConst.ERROR_NAVIGATION_OUT_MAP
  • -32620009:全局路径规划失败,常量定义 ComponentErrorConst.ERROR_NAVIGATION_GLOBAL_PATH_FAILED
  • -32620014:尝试重定位失败,常量定义 ComponentErrorConst.ERROR_NAVIGATION_RESET_ESTIMATE_FAIL
  • -32620008:机器人长时间未移动,常量定义 ComponentErrorConst.ERROR_DESTINATION_CAN_NOT_ARRIVE
  • -32620006:机器人长时间被障碍物堵死,常量定义 ComponentErrorConst.ERROR_NAVIGATION_AVOID_TIMEOUT
  • -32610011:参数解析失败,常量定义 ComponentErrorConst.ERROR_PARAMS_JSON_PARSER_ERROR

注意:开发中请使用常量定义进行结果及状态判断,以上出现的返回码在后续版本中有可能会发生变更

最低版本: 1.0.0

适用平台:

豹小秘mini招财豹豹小递max豹小秘DP

巡逻

组件名称: CruiseComponent

组件描述: 巡逻组件,可指定一组地点,机器人持续在指定的路线上行进。

使用示例:

public onStatusUpdate = (event?: ComponentEvent): boolean => {
    //TODO: 状态处理
    return true;
};

public onFinish = (result?: ComponentEvent): boolean => {
    //TODO: 结果处理
    return true;
};

public render() {
    let route = ['接待点', '会议室', '前台'];
    let param = new CruiseParam(JSON.stringify(route));
    return (
        <>
            <CruiseComponent
                param={param}
                onStatusUpdate={this.onStatusUpdate}
                onFinish={this.onFinish}
            />
        </>
    );
}

属性:

  • param:组件参数,类型为CruiseParam
  • onStatusUpdate:组件状态回调
  • onFinish:组件执行结束回调

参数说明:

  • cruise_route_list:巡逻路线,一组位置点名称,类型是Json数组字符串,必填项,有效位置点不能少于2个
  • cruise_is_need_dock:是否停靠巡逻点,默认false
  • cruise_point_avoid_time_out:巡逻过程中被被障碍物堵死的超时时间,超时后自动前往下一个巡逻点
  • cruise_is_check_points_exit:巡逻路线中有位置点被删除是否结束巡逻,默认是跳过缺失点,继续巡逻
  • cruise_start_index:指定巡逻起始位置点
  • param_reset_estimate_count:重定位尝试次数,默认5次
  • cruise_linear_speed:导航线速度,可不填写,范围0.1-1.2 m/s
  • cruise_angular_speed:导航角速度,可不填写,范围0.2-1.8 rad/s(1rad=180°/π,约 57.3°)

状态说明:

通过ComponentEvent.status获取到状态码:

  • 32730013:开始巡逻,常量定义 ComponentStatusConst.STATUS_START_CRUISE
  • 32730014:到达某一巡逻点,常量定义 ComponentStatusConst.STATUS_CRUISE_REACH_POINT
  • 32730012:准备前往下一巡逻点,常量定义 ComponentStatusConst.STATUS_CRUISE_AVOID_GO_NEXT_POINT
  • 32730001:开始前往巡逻点,常量定义 ComponentStatusConst.STATUS_START_NAVIGATION
  • 32730004:触发了避停,在遇到移动障碍物时会主动停止避让,常量定义 ComponentStatusConst.STATUS_OBSTACLES_AVOID
  • 32730011:机器人已被障碍物堵死,常量定义 ComponentStatusConst.STATUS_NAVIGATION_AVOID_START
  • 32730003:障碍物已被移除,常量定义 ComponentStatusConst.STATUS_NAVIGATION_AVOID_END
  • 32730015:跳过某一巡逻点,常量定义 ComponentStatusConst.STATUS_CRUISE_AVOID_POINT
  • 32730016:重定位成功,可继续巡逻,常量定义 ComponentStatusConst.STATUS_NAVIGATION_RESET_ESTIMATE_SUCCESS

结果说明

通过ComponentEvent.status获取到结果码:

  • 32610001:巡逻成功结束,常量定义 ComponentResultConst.RESULT_SUCCESS
  • -32610011:参数解析失败,常量定义 ComponentErrorConst.ERROR_PARAMS_JSON_PARSER_ERROR
  • -32610017:开始巡逻位置点下标错误,常量定义 ComponentErrorConst.ERROR_PARAMS_CRUISE_START_INDEX_INVALID
  • -32610016:有效巡逻点数量少于2个,常量定义 ComponentErrorConst.ERROR_PARAMS_CRUISE_ROUTE_INVALID
  • -32620005:获取当前地图的位置点列表错误,请前往地图工具进行检查,常量定义 ComponentErrorConst.ERROR_GET_PLACE_LIST_FAILED
  • -32620013:当前地图未设置位置点,请前往地图工具进行设置,常量定义 ComponentErrorConst.ERROR_GET_PLACE_LIST_EMPTY
  • -32620019:巡逻点不存在,开启巡逻点检查后有效,常量定义 ComponentErrorConst.ERROR_CRUISE_POINT_NOT_EXIT
  • -32620002:机器人或巡逻点在地图外,常量定义 ComponentErrorConst.ERROR_NAVIGATION_OUT_MAP
  • -32620009:全局路径规划失败,常量定义 ComponentErrorConst.ERROR_NAVIGATION_GLOBAL_PATH_FAILED
  • -32620001:当前未定位,常量定义 ComponentErrorConst.ERROR_NOT_ESTIMATE
  • -32610021:前往巡逻点失败,常量定义 ComponentErrorConst.ERROR_CRUISE_GO_POSITION_FAILED
  • -32600001:当前已有巡逻组件在运行,常量定义 ComponentErrorConst.ERROR_REQUEST_RES_BUSY
  • -32620028:当前巡逻路线的所有巡逻点均无法正常到达,常量定义 ComponentErrorConst.ERROR_CRUISE_PERSISTENT_IMMOBILITY
  • -32620014:尝试重定位失败,常量定义 ComponentErrorConst.ERROR_NAVIGATION_RESET_ESTIMATE_FAIL

注意:开发中请使用常量定义进行结果及状态判断,以上出现的返回码在后续版本中有可能会发生变更

最低版本: 1.0.0

适用平台:

豹小秘mini招财豹豹小递max豹小秘DP

下载示例代码

这篇文章是否有帮助?

1