Skip to content

SDK 说明

randoms edited this page May 24, 2019 · 2 revisions

创建SDK实例

public GalileoSDK()

释放SDK资源

public void Dispose()

当需要释放SDK资源时调用此方法。注意释放后不能再使用Connect重新连接机器人

连接机器人

public GALILEO_RETURN_CODE Connect(String targetID, bool autoConnect, int timeout, Action<GALILEO_RETURN_CODE, String> onConnect = null, Action<GALILEO_RETURN_CODE, String> onDisconnect = null)

输入 String targetID 目标机器人ID

boolean autoConnect 是否开启自动连接功能。当targetID为空字符串,且auto_connect为true时。机器人会自动连接局域网内的机器人。当局域网内有多台机器人时,此方法会返回MULTI_SERVER_FOUND错误。

int timeout 超时时间,单位毫秒。当在此时间内没有成功连接机器人则此方法返回超时错误。

Action<GALILEO_RETURN_CODE, String> onConnect 连接回调函数。当此值为NULL时,Connect会以同步阻塞方式执行。Connect会等待连接成功直至超时。当此值不是NULL时,Connect会以非阻塞方式执行。当机器人成功连接或连接超时时,SDK会调用此回调函数。

Action<GALILEO_RETURN_CODE, String> onDisconnect 连接断开回调函数。当此值非NULL,机器人连接断开时SDK会调用此回调函数。

返回 GALILEO_RETURN_CODE

物联网连接机器人

public GALILEO_RETURN_CODE ConnectIOT(string targetID, int timeout, string password, Action<GALILEO_RETURN_CODE, String> onConnect = null, Action<GALILEO_RETURN_CODE, String> onDisconnect = null)

通过物联网连接机器人

输入 string targetID

目标机器人ID,可以通过在机器人上执行bwgetid获取。

int timeout 超时时间

string password 目标机器人的密码,默认密码为xiaoqiang.

Action<GALILEO_RETURN_CODE, String> onConnect 连接回调函数,当此值不为null时,程序会在机器人连接成功时调用此回调函数。

Action<GALILEO_RETURN_CODE, String> onDisconnect 掉线回调函数,当此值不为null时,程序会在机器人掉线时调用此函数。

获取局域网在线机器人

public List<ServerInfo> GetServersOnline()

返回当前局域网内的所有机器人

获取当前连接机器人

public ServerInfo GetCurrentServer()

消息发布测试

public GALILEO_RETURN_CODE PublishTest()

发布伽利略指令

public GALILEO_RETURN_CODE SendCMD(byte[] data)

具体指令内容参照伽利略导航协议

开启导航

public GALILEO_RETURN_CODE StartNav()

开启导航服务。此方法只会发送开始导航指令,并不会等待导航开启完成。只能在机器人未处于导航状态且未处于建图状态下才可以执行此方法。

停止导航

public GALILEO_RETURN_CODE StopNav()

关闭导航服务。此方法只会发送关闭导航指令,并不会等待导航关闭完成。只能在机器人处于导航状态下才可以执行此方法。

设置导航目标点

public GALILEO_RETURN_CODE SetGoal(int goalIndex)

int goalIndex 目标点标号 设置导航目标点。此方法只会发送设置导航点指令,并不会等待目标点完成。只能在机器人处于导航状态下执行此方法。

暂停导航任务

public GALILEO_RETURN_CODE PauseGoal()

继续导航任务

public GALILEO_RETURN_CODE ResumeGoal()

取消当前导航任务

public GALILEO_RETURN_CODE CancelGoal()

插入导航点

public GALILEO_RETURN_CODE InsertGoal(float x, float y)

float x 插入点x坐标,此坐标为机器人map坐标系下坐标 float y 插入点y坐标,此坐标为机器人map坐标系下坐标

重置导航点

public GALILEO_RETURN_CODE ResetGoal()

重置目标点。所有通过InsertGoal插入的目标点都会重置。只保留原始目标点。

设置速度

public GALILEO_RETURN_CODE SetSpeed(float vLinear, float xAngle)

输入 float vLinear 直线运动速度,单位m/s float vAngle 转动速度, 单位 rad/s

关机

public GALILEO_RETURN_CODE Shutdown()

设置机器人角度

public GALILEO_RETURN_CODE SetAngle(byte sign, byte angle)

设置机器人角度,uint8_t sign 转向0表示正向旋转,1表示反向旋转 uint8_t angle 转动角度

开始循环

public GALILEO_RETURN_CODE StartLoop()

开启后机器人会按照导航点的顺序依次执行

停止循环

public GALILEO_RETURN_CODE StopLoop()

设置循环等待时间

public GALILEO_RETURN_CODE SetLoopWaitTime(byte time)

设置循环等待时间。机器人在循环过程中到达目标点的等待时间

开始建图

public GALILEO_RETURN_CODE StartMapping()

开始建图服务。机器人只能在不处于导航状态或建图状态下才能执行此方法。此方法只是发送开启建图指令,并不会等待建图服务开始运行。

停止建图

public GALILEO_RETURN_CODE StopMapping()

停止建图服务。机器人只能在建图状态下才能执行此方法。此方法只是发送停止建图指令,并不会等待建图服务停止。

保存地图

public GALILEO_RETURN_CODE SaveMap()

保存当前地图。当前地图会被保存在机器人的 slamdb 文件夹,但是在Windows客户端并不会显示。想要在Windows客户端显示需要把当前地图复制到 saved-slamdb 文件夹

更新地图

public GALILEO_RETURN_CODE UpdateMap()

开始局部充电

public GALILEO_RETURN_CODE StartChargeLocal()

开始局部充电功能。局部充电采用惯导定位,利用充电桩传感器对准充电桩。局部充电只能在机器人在充电桩附近使用。此方法只是发送开启局部充电指令,并不会等待充电动作完成

停止局部充电

public GALILEO_RETURN_CODE StopChargeLocal()

保存充电桩位置

public GALILEO_RETURN_CODE SaveChargeBasePosition()

此方法会保存充电桩坐标至机器人slamdb文件夹

开始充电

public GALILEO_RETURN_CODE StartCharge(float x, float y)

开始充电。此方法采用融合导航定位算法,可以在保证机器人处于导航状态下,在地图任意位置执行此指令。此指令首先会控制机器人移动到充电桩附近,然后再启动局部充电指令。此指令是一个阻塞指令,程序会等待机器人运动到充电桩后再退出。其中x,y为充电桩的坐标。

停止充电

public GALILEO_RETURN_CODE StopCharge()

取消充电指令

移动至特定坐标

public GALILEO_RETURN_CODE MoveTo(float x, float y, ref byte goalNum)

float x 目标点x坐标 float y 目标点y坐标 返回值为新插入的目标点id。

获取导航点数目

public GALILEO_RETURN_CODE GetGoalNum(ref byte goalNum)

成功调用后此值会被设置为当前目标点总数

获取当前机器人状态

public GalileoStatus GetCurrentStatus()

设置状态回调函数

public void SetCurrentStatusCallback(StatusUpdatedDelegate statusCB)

当状态更新时,调用传入的回调函数并传入最新状态

设置到达目标点回调函数

public void SetGoalReachedCallback(GoalReachedDelegate goalCB)

设置到达目标点函数。当机器人到达任意目标点时会执行此处设置的回调函数。并且将目标点ID和当前系统状态传递给此回调函数

等待到达目标点

public void WaitForGoal(byte goalIndex)

等待到达目标点。此方法会阻塞直至到达目标点或目标点被取消。

发送语音文字

public GALILEO_RETURN_CODE SendAudio(string audio)

audio为想要机器人说的字符串,在联网的情况下机器人会自动下载相关语音内容。

发送语音

public GALILEO_RETURN_CODE SendRawAudio(byte[] data)

audioData为语音文件内容,可以支持wav和MP3格式的音频内容

开启迎宾模式

public GALILEO_RETURN_CODE EnableGreeting(boolean flag)

在迎宾模式状态下,机器人前面走过客户时机器人会说欢迎光临之类的迎宾的话,当flag为false时为关闭迎宾模式。

检查机器人是否在线

public GALILEO_RETURN_CODE CheckServerOnline(string targetID)

检查特定ID的机器人是否在线