当前位置: 首页 > news >正文

睿尔曼超轻量仿人机械臂之复合机器人底盘介绍及接口调用

       机器人移动平台是一个包含完整成熟的感知、认知和定位导航能力的轮式机器人底盘产品级平台,产品致力于为各行业细分市场的商用轮式服务机器人提供一站式移动机器人解决方案,让合作伙伴专注在核心业务/人机交互的实现。以下是我司产品双臂机器人以及复合升降机器人,都搭载了移动底盘。

底盘参数

  • 轮对
    • 六轮(2个驱动轮+4个万向轮)
    • 差速驱动+主动悬挂 250W轮毂伺服电机x2个
  • 重量
    • 50Kg
  • 承重能力
    • 承重60Kg(过坎能力8mm,爬坡角度5°)
    • 承重40Kg(过坎能力12mm,爬坡角度5°)
    • 空载(过坎能力20mm,爬坡角度10°)
  • 尺寸
    • 高:280mm 直径:505mm
  • 电源
    • 18650锂离子电池组: 25.2V 20Ah(21V-29.4V) 4A适配器
    • 可选25.2V 35Ah 6A适配器
  • 满电工作时长
    • 20Ah电池: 静止(0m/s)可运行20小时, 无负载运行(0.7m/s)可运行11小时

Web示教器界面的进入以及在示教器里面禁行移动测试      

         连接底盘进入底盘web示教器的方式可以有两种,一种是有线连接然后在浏览器输入对应的ip地址我这里的IP地址为192.168.10.10:9001。一种是通过无线的方式连接底盘的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

到达位置后的角度偏移, 例如使用marker=m1发送任务时, 会以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.10'chassis_port = 9001chassis_client.connect((chassis_host, chassis_port))print("-------------")#前往Test_1点位target_marker = 'Test_1'move_chassis(chassis_client,target_marker)time.sleep(10)#前往的Test_2点位target_marker = 'Test_2'move_chassis(chassis_client,target_marker)

这里,我们建立了与底盘的链接以及调用了两个点位具体内容如上程序所示。

http://www.lryc.cn/news/329111.html

相关文章:

  • 用JSch实现远程传输文件并打包成jar
  • 2023年第十四届蓝桥杯大赛软件类省赛C/C++研究生组真题(代码完整题解)
  • 力扣刷题Days28-第二题-11.盛水最多的容器(js)
  • 文生图大模型三部曲:DDPM、LDM、SD 详细讲解!
  • 算法学习——LeetCode力扣动态规划篇10(583. 两个字符串的删除操作、72. 编辑距离、647. 回文子串、516. 最长回文子序列)
  • TASKPROMPTER
  • C之易错注意点转义字符,sizeof,scanf,printf
  • 等级保护测评无补偿因素的高风险安全问题判例(共23项需整改)
  • JavaScript笔记 09
  • 操作教程|在MeterSphere中通过SSH登录服务器的两种方法
  • Swashbuckle.AspNetCore介绍
  • 【Spring】通过Spring收集自定义注解标识的方法
  • 基于深度学习的图书管理推荐系统(python版)
  • MATLAB 点云随机渲染赋色(51)
  • 通过一篇文章让你完全掌握VS和电脑常用快捷键的使用方法
  • ChatGPT指引:借助ChatGPT撰写学术论文的技巧
  • 魔改一个过游戏保护的CE
  • rust嵌入式开发之await
  • UE4_碰撞_碰撞蓝图节点——Line Trace For Objects(对象的线条检测)
  • 抽象类和接口的简单认识
  • python-pytorch获取FashionMNIST实际图片标签数据集
  • 深入探秘Python生成器:揭开神秘的面纱
  • 红队攻防渗透技术实战流程:红队目标信息收集之批量信息收集
  • 【vue3学习笔记(二)】(第141-143节)初识setup;ref函数_处理基本类型;ref函数_处理对象类型
  • 若依框架学习使用
  • 蓝桥杯_数学模板
  • 稀碎从零算法笔记Day31-LeetCode:接雨水
  • 微前端的使用和注意事项 - qiankun
  • uniapp微信小程序消息订阅详解
  • git 查看文件夹结构树