当前位置: 首页 > 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)

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

相关文章:

  • Linux|如何管理多个Git身份
  • 开源AI引擎:文本自动分类在公安及消防执法办案自动化中的应用
  • Serilog日志框架
  • Java- maven下载jar包,提示找不到,Could not find artifact
  • 机器学习-关联规则算法Apriori及编码实现
  • 【讲解下Gitea】
  • PyTorch 教程-快速上手指南
  • 关于 UnityEditorWindow
  • Java中常见的锁策略
  • 【Linux】详解文件系统以及周边知识
  • 10.windows ubuntu 组装软件:spades,megahit
  • 鸿蒙应用开发-录音保存并播放音频
  • Linux文件(系统)IO(含动静态库的链接操作)
  • 最新2024年增强现实(AR)营销指南(完整版)
  • 全国青少年软件编程(Python)等级考试一级考试真题2023年9月——持续更新.....
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • AngularJS指令开发(1)——参数详解
  • Codepen 每日精选(2018-3-25)
  • Docker 笔记(2):Dockerfile
  • ECS应用管理最佳实践
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • JavaScript 基本功--面试宝典
  • mysql 数据库四种事务隔离级别
  • springboot_database项目介绍
  • V4L2视频输入框架概述
  • vue中实现单选
  • windows下mongoDB的环境配置
  • Yeoman_Bower_Grunt
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 编写符合Python风格的对象
  • 大快搜索数据爬虫技术实例安装教学篇
  • 读懂package.json -- 依赖管理
  • 多线程 start 和 run 方法到底有什么区别?
  • 关于for循环的简单归纳
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 嵌入式文件系统
  • 微信小程序:实现悬浮返回和分享按钮
  • 源码安装memcached和php memcache扩展
  • k8s使用glusterfs实现动态持久化存储
  • ​【已解决】npm install​卡主不动的情况
  • ​linux启动进程的方式
  • #ubuntu# #git# repository git config --global --add safe.directory
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (十三)Flask之特殊装饰器详解
  • (一)Thymeleaf用法——Thymeleaf简介
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • . NET自动找可写目录
  • .equals()到底是什么意思?
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .net mvc 获取url中controller和action