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

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

底盘参数

  • 轮对
    • 六轮(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 = 9001
    chassis_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)

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/498414.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

九泰智库 | 医械周刊- Vol.18

⚖️ 法规动态 医疗器械并购风起&#xff0c;深交所联合北京经信局举办医疗器械座谈交流会 | 第一财经 近日&#xff0c;深圳证券交易所联合北京市经济和信息化局&#xff0c;举办“发挥深市医疗器械龙头引领作用&#xff0c;积极培育地方新质生产力”座谈交流活动。邀请了行业…

Linux 安装部署高性能缓存服务redis

Linux 系统安装Redis 5 注意事项&#xff1a; 下载Redis 文件包&#xff0c;并上传至linux服务上解压 tar -zxvf redis.tar安装&#xff1a; 编译 make PREFIX/usr/local/redis install配置&#xff1a; redis.conf daemonize yes bind 127.0.0.1 192.168.1.221 supervised…

TQ-DDL contention事件导致数据库hang死

数据库一天内多次hang住&#xff0c;最后只能重启恢复&#xff0c;操作系统及数据库版本&#xff1a;Windows Oracle 12.2.0.1检查hang住时间段alert日志&#xff0c;发现数据库多次重启日志&#xff0c;基本上是hang住然后手工重启。检查ash记录&#xff0c;发现重启前有很多“…

2024.3.28学习笔记

今日学习韩顺平java0200_韩顺平Java_对象机制练习_哔哩哔哩_bilibili 今日学习p286-p294 继承 继承可以解决代码复用&#xff0c;让我们的编程更加靠近人类思维&#xff0c;当多个类存在相同的属性和方法时&#xff0c;可以从这些类中抽象出父类&#xff0c;在父类中定义这些…

Rust编程(五)终章:查漏补缺

闭包 & 迭代器 闭包&#xff08;Closure&#xff09;通常是指词法闭包&#xff0c;是一个持有外部环境变量的函数。外部环境是指闭包定义时所在的词法作用域。外部环境变量&#xff0c;在函数式编程范式中也被称为自由变量&#xff0c;是指并不是在闭包内定义的变量。将自…

设计模式(1)——单例模式

目录 1. 单例模式的含义 2. 单例模式的四种常见方式 2.1 饿汉式经典加载方式 2.2 懒汉式加载方式 2.3 静态内部类方式加载 2.4 枚举类加载方式 1. 单例模式的含义 单例&#xff0c;简单来说就是单个实例&#xff0c;是一种常见的软件的设计模式。 一个类只实例化自己的…

社交科技:探索Facebook的技术创新

引言 在当今数字化社会中&#xff0c;社交媒体成为了人们日常生活不可或缺的一部分&#xff0c;而Facebook作为其中的领军者&#xff0c;一直在探索和应用新的技术&#xff0c;以满足用户的需求并不断提升用户体验。本文将深入探讨Facebook在技术创新方面的努力与成就&#xf…

Fastadmin给列表数据绑定添加内容

不同及服务需要收集不同的字段&#xff0c;在服务列表处增加按钮&#xff0c;弹出管理字段列表&#xff0c;单独管理每个服务的字段。如下图&#xff0c;给不同的服务绑定不同表单字段&#xff0c;点击表单按钮弹出页面维护当前服务的字段。 实现代码 //初始化表格处添加按钮 …

吴恩达2022机器学习专项课程(一) 4.2 梯度下降实践

问题预览/关键词 本节内容梯度下降更新w的公式梯度下降更新b的公式的含义α的含义为什么要控制梯度下降的幅度&#xff1f;导数项的含义为什么要控制梯度下降的方向&#xff1f;梯度下降何时结束&#xff1f;梯度下降算法收敛的含义正确更新梯度下降的顺序错误更新梯度下降的顺…

密码杂凑算法Banana512原理详解

密码杂凑算法Banana512原理详解 黄金龙 QQ1435271638 Banana512属于杂凑函数,与美国的SHA256(安全哈希算法)类似,都属于信息摘要算法,又被称为Hash算法,Hash算法主要用于完整性校验和提高数字签名的有效性。 Hash算法的输入为任意长度的消息,输出为固定长度的Hash值,…

Java八股文(算法)

Java八股文の算法 算法 算法 逆序输出字符串 题目描述&#xff1a;输入一个字符串&#xff0c;要求逆序输出。 public static String reverseString(String s) {StringBuilder sb new StringBuilder();for (int i s.length() - 1;i > 0;i--) {sb.append(s.charAt(i));}r…

科技改变财务规划:提升企业对自动化技术的管理

在当今快节奏的市场经济中&#xff0c;财务规划与分析团队不仅仅是数字运算者&#xff0c;他们在推动业务决策、识别风险和机遇以及制定未来战略计划方面发挥着关键作用。然而&#xff0c;对于大多数企业来说&#xff0c;现实情况是财务工作过于关注历史数据分析和报告&#xf…

在 Mac 上恢复已删除文件的 4 种方法 [完整指南]

几乎每个 Mac 用户都有过因删除、格式化硬盘或清空垃圾箱而导致数据丢失的经历。当您在 Mac 上删除文件并清空垃圾箱或使用“磁盘工具”擦除功能擦除整个硬盘驱动器时&#xff0c;您可能会认为已删除的文件或已擦除的数据已永远消失。事实上&#xff0c;事实并非如此。使用正确…

电池稳定性测试系统太阳光模拟器/数字源表/测试软件

太阳光模拟器又称太阳模拟器太阳能模拟器提供一个接近自然日光的环境&#xff0c;不受环境、气候和时间等因素影响实现24小时不间断光照。太阳光模拟器又称太阳能模拟器太阳模拟器广泛应用于太阳能电池特性测试、染料敏化电池&#xff08;DSSC&#xff09;、钙钛矿电池&#xf…

JavaNIO的Buffer详解

文章目录 1. 简介2. 相关属性3. 相关方法4. 直接内存深入理解5. 零拷贝6. Java生态中的0拷贝 1. 简介 Buffer缓冲区实际上就是一个数组&#xff0c;把数组的内容和信息包装成一个Buffer对象&#xff0c;它提供了一组访问这些信息的方法。 2. 相关属性 Capacity 作为一个内存…

【YOLOv5改进系列(6)】高效涨点----使用DAMO-YOLO中的Efficient RepGFPN模块替换yolov5中的Neck部分

文章目录 &#x1f680;&#x1f680;&#x1f680;前言一、1️⃣ 添加yolov5_GFPN.yaml文件二、2️⃣添加extra_modules.py代码三、3️⃣yolo.py文件添加内容3.1 &#x1f393; 添加CSPStage模块 四、4️⃣实验结果4.1 &#x1f393; 使用yolov5s.pt训练的结果对比4.2 ✨ 使用…

某某消消乐增加步数漏洞分析

一、漏洞简介 1&#xff09; 漏洞所属游戏名及基本介绍&#xff1a;某某消消乐&#xff0c;三消游戏&#xff0c;类似爱消除。 2&#xff09; 漏洞对应游戏版本及平台&#xff1a;某某消消乐Android 1.22.22。 3&#xff09; 漏洞功能&#xff1a;增加游戏步数。 4&#xf…

【ripro美化】全站美化包WordPress RiPro主题二开美化版sucaihu-childV1.9(功能集成到后台)

使用介绍 1、【宝塔】删除ripro文件&#xff0c;上传最新ripro版本&#xff0c;然后上传压缩包内的ripro里面的对应文件到ripro主题对应内覆盖&#xff08;找到对应路径单个文件去覆盖&#xff09;。 2、然后上传ripro-chlid子主题美化包到/wp-content/themes路径下 3、注意顺…

STM32使用USART发送数据包指令点亮板载LED灯

电路连接&#xff1a; 连接显示屏模块&#xff0c;显示屏的SCL在B10&#xff0c;SDA在B11。 程序目的&#xff1a; 发送LED_ON指令打开板载LED灯&#xff0c;发送LED_OFF关闭板载LED灯&#xff0c;与上一个博客不同&#xff0c;这个实际上是实现串口收发文本数据包。 …

【产品经理】全面解读“数字孪生”

理解数字孪生 随着互联网技术的深入发展&#xff0c;数字孪生被越来越多地提及&#xff0c;那么数字孪生到底是什么&#xff1f;数字孪生&#xff0c;翻译自英文“Digital Twin”&#xff0c;最早在2002年&#xff0c;被从事产品生命周期管理PLM的Michael Grieves教授&#xf…