长沙娱乐网站开发,商务网站建设学期总结,信用泰安网站,网站开发员需要什么素质机器人移动平台是一个包含完整成熟的感知、认知和定位导航能力的轮式机器人底盘产品级平台#xff0c;产品致力于为各行业细分市场的商用轮式服务机器人提供一站式移动机器人解决方案#xff0c;让合作伙伴专注在核心业务/人机交互的实现。以下是我司产品双臂机器人以及复合升… 机器人移动平台是一个包含完整成熟的感知、认知和定位导航能力的轮式机器人底盘产品级平台产品致力于为各行业细分市场的商用轮式服务机器人提供一站式移动机器人解决方案让合作伙伴专注在核心业务/人机交互的实现。以下是我司产品双臂机器人以及复合升降机器人都搭载了移动底盘。 底盘参数
轮对 六轮2个驱动轮4个万向轮差速驱动主动悬挂 250W轮毂伺服电机x2个重量 50Kg承重能力 承重60Kg过坎能力8mm爬坡角度5°承重40Kg过坎能力12mm爬坡角度5°空载过坎能力20mm爬坡角度10°尺寸 高280mm 直径505mm电源 18650锂离子电池组 25.2V 20Ah21V-29.4V 4A适配器可选25.2V 35Ah 6A适配器满电工作时长 20Ah电池 静止0m/s可运行20小时 无负载运行0.7m/s可运行11小时 Web示教器界面的进入以及在示教器里面禁行移动测试 连接底盘进入底盘web示教器的方式可以有两种一种是有线连接然后在浏览器输入对应的ip地址我这里的IP地址为192.168.10.109001。一种是通过无线的方式连接底盘的ip无线连接的WiFi是以admin开头密码默认为12345678再在了浏览器输入对应的IP地址即可进入web界面。我这里使用有线连接的方式进入不用输入密码web界面如下 值得注意的是当我们从新打开地图后我们进入后先矫正底盘的位置然后再进行操作矫正完成后再进行所需点位的建立建立好点所需要的的点位后我们进入以下的测试工具。 随即会进行url的跳转进入到如下的界面 我们可以进行点位的选取以及循环次数的设置点击开始执行确保机器人的急停处于打开状态机器人就可以按照点位来进行运动。
调用Api来进行底盘根据点位的运动
首先我们需要提前了解移动底盘的api接口文档此次demo以两点之间的移动举例
指令 /api/move
参数 名称 说明 是否必选 备注 从以下版本开始 marker 目标点位代号 与location 必选其一 优先级低于location location x地图中x轴坐标,y地图 中y轴坐标,theta地图中相对theta值 与marker 必选其一 max_continuous_retries 原地最大连续重试次数机器人原地不动时重试次数超过此值则任务失败) 可选 默认30 次 0.7.11 distance_tolerance 距离容差,类型float,单位米。 (当目标位置被占据等原因无法到达时机器人移动到目标此距离之内也算任务成功。) 可选 默认值跟机器人型号相关 0.7.12 theta_tolerance 角度容差类型float单位弧度。(到达目标点位后角度小于此值后任务成功) 可选 默认值跟机器人型号相关 0.7.12 angle_offset 到达位置后的角度偏移, 例如使用markerm1发送任务时, 会以m1的角度 angle_offset的角度作为最终方向执行任务. 可选 单位弧度, 范围[-3.14, 3.14], 默认0 0.8.2 yaw_goal_reverse_allowed 双向停靠控制参数取值1或 0或-1。对于双向行走的机器人此参数用于机器人停靠到点位时是否允许尾部跟点位方向一致。 可选 1:允许 0:不允许 其他: 使用默认 0.8.7 occupied_tolerance 让步停靠距离参数单位米。当目标点位被占用时设置此参数机器人会直接在点位附近停靠以完成任务而不再尝试移动到点位上。距离以占用物边缘至机器人中心计算。 可选 [0.1, ) 0.8.7
接下来我们在程序当中进行调用:
# demo9
def move_chassis(client, marker):move_command f/api/move?marker{marker}client.send(move_command.encode(utf-8))chassis_receive_data client.recv(1024)print()response client.recv(1024).decode()print(Response:, response)data json.loads(response)move_code data.get(code)# time.sleep(10)while True:response client.recv(1024).decode()print(Response:, response)data json.loads(response)move_code data.get(code)if move_code 01002:print(Move completed successfully.)time.sleep(1)break这段代码主要是与底盘建立连接以及参数的的编写循环监听返回的状态码来进行到位信息的判断。
在主函数当中调用的代码如下 #建立与机器人的socoket链接chassis_client socket.socket(socket.AF_INET, socket.SOCK_STREAM)chassis_host 192.168.10.10chassis_port 9001chassis_client.connect((chassis_host, chassis_port))print(-------------)#前往Test_1点位target_marker Test_1move_chassis(chassis_client,target_marker)time.sleep(10)#前往的Test_2点位target_marker Test_2move_chassis(chassis_client,target_marker)这里我们建立了与底盘的链接以及调用了两个点位具体内容如上程序所示。