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

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

底盘参数

  • 轮对
    • 六轮(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.mzph.cn/news/778316.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在安卓手机上用termux安装完整kali linux的办法

在安卓手机上termux是完整的Linux仿真器&#xff0c;但也有时候需要在手机上装其他集成度更高的Linux发行版的刚需。 在安卓手机上用termux安装完整kali linux的办法&#xff0c;如下&#xff1a; pkg install wget openssl-tool proot tar -y && hash -r &&…

Rust编程(四)PackageCrateModule

这一部分的中文教程/文档都很混乱,翻译也五花八门,所以我建议直接看英文官方文档,对于一些名词不要进行翻译,翻译只会让事情更混乱,本篇从实战和实际需求出发,讲解几个名称的关系。 Module & Crate & Package & Workspace 英文中的意思: Cargo:货物 Crate:…

【详细讲解PostCSS如何安装和使用】

&#x1f308;个人主页:程序员不想敲代码啊&#x1f308; &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家&#x1f3c6; &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d; 希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提…

Python读取csv文件入Oracle数据库

在Python中&#xff0c;使用pandas库的read_sql_query函数可以直接从SQL查询中读取数据到DataFrame。而pd.set_option函数用于设置pandas的显示选项。具体来说&#xff0c;display.unicode.ambiguous_as_wide选项用于控制当字符宽度不明确时&#xff0c;pandas是否将这些字符显…

go中继承、多态的模拟实现

Go语言采用了与传统面向对象编程语言&#xff08;如Java或C&#xff09;不同的方法来实现继承和多态。 它通过接口&#xff08;Interfaces&#xff09;、结构体&#xff08;Structs&#xff09;和组合&#xff08;Composition&#xff09;提供了继承和多态的能力 继承的模拟实…

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

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

dou音全系纯算

先说明一个事情&#xff1a; 公众号开通了朋友们&#xff0c;大家可去关注一下&#xff0c;关于国内外的验证系列&#xff0c;或是另类常见的算法都有详情介绍的文章&#xff01;&#xff01;&#xff01;&#xff01;以后有问题可以直接在vx上留言&#xff0c;这样也方便看的多…

【ARM 嵌入式 C 入门及渐进 13 -- ARM 带返回值的汇编函数】

请阅读【嵌入式开发学习必备专栏 】 文章目录 在 ARMv8 架构中&#xff0c;系统寄存器的访问通常使用专有的指令。对于 MPIDR_EL1&#xff08;多处理器亲和性寄存器&#xff09;&#xff0c;可以使用 MRS&#xff08;Move System Register&#xff09;指令将其值读取到一个通用…

智能工具管理系统-智能工具柜系统

智能工具管理系统-智能工具柜系统 智能工具可视化管理系统(智工具DW-S308)是依托互3D技术、云计算、大数据、RFID技术、数据库技术、AI、视频分析技术对RFID工具进行统一管理、分析的信息化、智能化、规范化的系统。 一、工具管理现状 东识RFID工具管理系统是一种便捷化的工具…

jQuery如何获取元素宽高?

在jQuery中&#xff0c;获取元素的宽和高有多种方法&#xff0c;取决于你是否需要包括边框、内边距或其他额外空间。以下是几种常用的方式&#xff1a; 获取元素内容区域的宽和高&#xff08;不包括边框和内边距&#xff09;&#xff1a; var width $(#yourElement).width(); …

前端基础知识html

一.基础标签 1.<h1>-<h6>:定义标题&#xff0c;h最大&#xff0c;h最小 2.<font>&#xff1a;定义文本的字体&#xff0c;尺寸&#xff0c;颜色 3.<b>&#xff1a;定义粗体文本 4.<i>&#xff1a;定义斜体文本 5.<u>&#xff1a;定义文本下…

【MySql数据库】MySQL5.7在navicat中建立连接报错1045及重装MySQL过程中3306端口号被占用释放的过程

文章目录 一、报错1、软件中报错2、navicat中报错3、数据库密码是正确的4、卸载数据库5、重装数据库发现3306端口被占用 二、释放3306端口1、找到3306端口对应的PID值2、释放3306端口号3、释放端口后&#xff0c;重装数据库 一、报错 1、软件中报错 2、navicat中报错 在navic…

prometheus详解1

一、start、reload 与 shutdown 1、启动prometheus 进程 nohup ./prometheus --config.fileprometheus.yml > prometheus.log 2>&1 &2、重载prometheus配置文件&#xff08;reload&#xff09; kill -s SIGHUP <PID>3、优雅的shutdown一个prometheus 进…

CentOS配置docker外部访问

CoreOS 官方文档提供的方法 官方文档&#xff1a;​​​​​​https://coreos.com/os/docs/latest/customizing-docker.html 新建 /etc/systemd/system/docker-tcp.socket 文件 [Unit] DescriptionDocker Socket for the API[Socket] # ListenStream127.0.0.1:2375 ListenStre…

Colorize (Texture Color Palette Modifier)

Colorize提供了无与伦比的区域颜色调整和效果控制,如使用纹理调色板的模型的发射、金属反射和模拟金属遮挡。 Colorize彻底改变了你在Unity中为3D模型添加颜色和生命的方式。无论你是一个独立开发者、艺术家,还是一个大型团队的一员,Colorize都提供了一套直观、强大的工具,…

【CASS精品教程】CASS中计算四参数和七参数(以RTK数据为例)

文章目录 一、四参数介绍二、四参数计算三、七参数介绍四、四参数、七参数的区别一、四参数介绍 两个不同的二维平面直角坐标系之间转换通常使用四参数模型,四参数适合小范围测区的空间坐标转换,相对于七参数转换的优势在于只需要2个公共已知点就能进行转换,操作简单。 在…

Pytorch的named_children, named_modules和named_children

在 PyTorch 中&#xff0c;named_children、named_modules 和 named_parameters 是用于获取神经网络模型组件和参数的三种不同的方法。下面是它们各自的作用和区别&#xff1a; named_parameters&#xff1a;递归地列出所有参数名称和tensornamed_modules&#xff1a;递归地列…

(day 22)JavaScript学习笔记(内置对象1之Number、Math、Date)

概述 这是我的学习笔记&#xff0c;记录了JavaScript的学习过程。在写博客的时候我会尽量详尽的记录每个知识点。如果你完全没接触过JavaScript&#xff0c;那么这一系列的学习笔记可能会对你有所帮助。 今天学习JavaScript内置的对象&#xff0c;主要是Number、Math、Date。 …

Vue3 + Vite + TS + Element-Plus + Pinia项目(5)对axios进行封装

1、在src文件夹下新建config文件夹后&#xff0c;新建baseURL.ts文件&#xff0c;用来配置http主链接 2、在src文件夹下新建http文件夹后&#xff0c;新建request.ts文件&#xff0c;内容如下 import axios from "axios" import { ElMessage } from element-plus im…

Spring Boot集成Elasticsearch 8.12.2客户端

文章目录 引言I ES 支持的客户端连接方式1.1 REST API ,端口 9200。1.2 Transport 连接, 端口 9300。II 在Spring Boot中集成Elasticsearch 8.12.2客户端2.1 添加Elasticsearch客户端依赖2.2 创建配置类2.4 使用ESClient进行操作III 通过Collapse实现字段分组排序的功能3.1 c…