大象机器人myCobot 280 2023版全新功能展示

引言

机械臂是一种可编程的、自动化的机械系统,它可以模拟人类的动作,完成各种任务,例如装配、喷涂、包装、搬运、焊接、研磨等。由于其高度灵活性和多功能性,机械臂在现代社会中已经得到了广泛的应用。

myCobot 280 M5Stack 2023是一款高性能桌面型机械臂,其强大的功能和多种新特性使其成为教育、科研和轻型制造等领域的理想选择。该机械臂不仅具备精准的运动控制和高效的工作能力,而且支持ROS2的环境适配、ps2手柄控制、自干涉碰撞等多种新功能,这些功能使得该机械臂更加智能、灵活和安全。本篇文章将详细介绍myCobot280 2023的新功能和应用场景,帮助读者深入了解这款机械臂的特点和优势,并探索如何在教育、科研和制造等领域中发挥其潜力。

myCobot280 2023简介

myCobot 280是一款轻量级桌面型机械臂产品,重量不到800克,可重复定位精度控制在0.5毫米以内,负载能力为250克,工作半径为280毫米。该机械臂具有丰富的接口,支持主流编程语言和环境,例如Python、C++、ROS1/2等。这使得它非常适合用于教育、科研、等领域。

新功能

myCobot 280 2023 具有以下新功能:

(如果您当前使用的是第一代myCobot 280,则可以升级固件以访问新功能。

● 提高通信速度和 ROS2 支持

● 自干扰碰撞和手柄控制

● 复合机器人及物流自动化研究

提高通信速度和 ROS2 支持

● myCobot 280 2023的通信速度比之前的版本提高了五倍,现在可以达到20ms。这种改进可以提高机械臂的响应能力,使控制更加灵敏,减少通信造成的事故。机器人的运动速度也更快,减少了事故的发生。

myCobot 280 2023 现在支持 ROS2 环境,它与 ROS1 有两个不同之处。首先,ROS2提高了实时性能,可以更精确地控制机器人的运动路径和速度。这适用于需要高实时性能的应用。其次,ROS2使用数据分发服务(DDS)协议,与ROS1相比,该协议提高了网络通信性能,使其在处理机器人控制命令和提高机器人响应速度方面更加高效。但是,ROS1已经在机器人领域得到了广泛的应用,并且具有相对完整的控制库和开发环境,使得开发和应用机器人相关软件变得容易。ROS2相对较新,在市场上的应用较少。因此,用户在选择控件开发环境时,需要考虑自己的具体需求和实际情况,选择最合适的一种。

● 自干涉碰撞和手柄控制

○ 自干涉碰撞:新添了一个自干涉碰撞功能,这个功能能使本体在发生关节碰撞的时候会立刻停止运动,不会继续运动下去导致机械臂出现掉电情况。这个功能可以有效避免机械臂在工作过程中出现异常情况导致的损坏,提高了机械臂的安全性和可靠性。

通过收集用户的反馈,已经研发人员对产品的期望,这项技术可以说是很大程度上解决了一个问题,在以往如果说强行让机械臂关节进行碰撞的话,整个机器就会执行掉电保护,需要重新上电恢复控制,给不少用户造成了麻烦。

目前这项技术并不开源,所以不能过多的揭晓其中的算法和原理。

● 还有一个游戏手柄控制功能,允许用户使用 PS2 游戏控制器控制机器人的运动和操作,还增加了对吸盘和夹具的控制。此功能简化了编程过程并改善了用户体验。句柄控制功能基于一组 Python 程序,引入 Pygame 库来设置控制器的密钥(相当于自定义句柄)。这是一个相对简单的项目,有兴趣的人可以在此基础上进一步开发。该项目是开源的,并在GitHub上共享。

def main():global actionpygame.init()pygame.joystick.init()try:joystick = pygame.joystick.Joystick(0)except:print("Please connect the handle first.")returnjoystick.init()done = Falsestart_time = 0while not done:for event_ in pygame.event.get():if event_.type == pygame.QUIT:done = True# 按键按下或弹起事件elif (event_.type == pygame.JOYBUTTONDOWN or event_.type == pygame.JOYBUTTONUP):buttons = joystick.get_numbuttons()# 获取所有按键状态信息for i in range(buttons):button = joystick.get_button(i)if i == 7:if button == 1:action = 7breakelse:action = 0if i == 1:if button == 1:action = 11breakif i == 0:if button == 1:action = 10breakif i == 3:if button == 1:action = 9breakif action == 9 and button == 0:action = 0breakif i == 2:if button == 1:action = 8breakif action == 8 and button == 0:action = 0breakif i == 4:if button == 1:action = 18start_time = time.time()breakif start_time != 0 and button == 0:if time.time() - start_time > 2:start_time = 0breakelse:start_time = 0action = 0if i == 5:if button == 1:action = 21start_time = time.time()breakif start_time != 0 and button == 0:if time.time() - start_time > 2:start_time = 0breakelse:start_time = 0action = 0# print("button " + str(i) + ": " + str(button))# 轴转动事件elif event_.type == pygame.JOYAXISMOTION:axes = joystick.get_numaxes()# 获取所有轴状态信息# while True:for i in range(axes):axis = joystick.get_axis(i)# res[i] = axisif i == 1:if axis < -3.0517578125e-05:action = 1breakelif axis > -3.0517578125e-05:action = 2breakelse:action = 0if i == 0:if axis < 0:action = 3breakelif axis > 0:action = 4breakelse:action = 0if i == 2:if axis < 0:action = 17breakelif axis > 0:action = 16breakelse:action = 0if i == 3:if axis < -3.0517578125e-05:action = 5breakelif axis > -3.0517578125e-05:action = 6breakelse:action = 0if i == 4:if axis > 0.9:action = 19start_time = time.time()breakif start_time != 0 and axis == -1.0:if time.time() - start_time > 2:start_time = 0breakelse:start_time = 0action = 0if i == 5:if axis > 0.9:action = 20start_time = time.time()breakif start_time != 0 and axis == -1.0:if time.time() - start_time > 2:start_time = 0breakelse:start_time = 0action = 0# print("axis " + str(i) + ": " + str(axis))# 方向键改变事件elif event_.type == pygame.JOYHATMOTION:# hats = joystick.get_numhats()# 获取所有方向键状态信息# for i in range(hats):hat = joystick.get_hat(0)# print("hat " + str(i) +": " + str(hat))if hat == (0, 1):action = 12elif hat == (0, -1):action = 13elif hat == (-1, 0):action = 14elif hat == (1, 0):action = 15elif hat == (0, 0):action = 0pygame.quit()

复制

是一个相对比较简单的项目,如果有兴趣的话可以在次基础上进行再次的开发。

项目是开源的已经分享在GitHub,links:

https://github.com/elephantrobotics/pymycobot/tree/main/demo/handle_control

复合机器人与物流自动化研究

● myCobot 280 2023还可以与由树莓派4B控制的SLAM雷达车myAGV组合,形成一个复合机器人,可以学习和研究物流自动化、导航和其他功能。此功能使机器人在处理不同的场景和任务时更加灵活多才多艺,提高了其综合应用能力。

● myAGV:关于车辆,hackster网站上有很多介绍文章,一些开发者使用myAGV和myCobot 280来实现一些项目。

总结

总的来说,myCobot 280 2023是一款具有多种新功能和改进的机械臂,大大增强了其性能和应用范围。除了提升通信速度、支持 ROS2、避免自干扰碰撞外,我们还推出了 AI Kit 2023,将机器视觉与机械臂相结合,实现类似工业的自动化场景,让机械臂的应用更加广泛和多样化。

此外,myCobot 280 2023 还有许多其他功能等着你去探索,比如绘图、AI分拣抓取等,这将进一步拓展机械臂的应用范围和创新。如果您有更好的项目和想法,请随时与我们分享。我们非常乐意听取您的建议,为您提供更好的服务。

如果您有任何其他问题或疑虑,请随时与我们联系。我们很乐意为您提供帮助。

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

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

相关文章

Spring Boot 中的 SockJS

Spring Boot 中的 SockJS 在 Spring Boot 中&#xff0c;SockJS 是一个用于实现 WebSocket 的兼容性解决方案。本文将介绍 SockJS 的原理、使用方法和示例代码。 什么是 SockJS SockJS 是一种浏览器与服务器之间的通信协议&#xff0c;它可以在浏览器和服务器之间建立一个基于…

论文阅读:Segment Anything之阅读笔记

目录 引言整体结构介绍论文问答代码仓库中&#xff0c;模型哪部分转换为了ONNX格式&#xff1f;以及如何转的&#xff1f;Mask decoder部分 Transformer decoder block?如何整合image_embedding&#xff0c;image_pe, sparse_prompt_embedding和dense_prompt_embedding的&…

将OxyPlot封装成用户控件后在WPF中的应用

1、文件架构 2、加载依赖项 Newtonsoft.Json OxyPlot.Wpf 3、NotifyBase.cs namespace Accurate.Common {public class NotifyBase : INotifyPropertyChanged{public event PropertyChangedEventHandler? PropertyChanged;public void DoNotify([CallerMemberName] string p…

XR-FRAME 开始

目录 新建一个XR组件在页面中使用这个组件添加一个物体来点颜色和灯光有点寡淡&#xff0c;加上图像让场景更丰富&#xff0c;环境数据动起来&#xff0c;加入动画还是不够&#xff0c;放个模型再来点交互组件通信&#xff0c;加上HUD虚拟 x 现实&#xff0c;追加AR能力识别人脸…

抖音seo矩阵系统源码开发部署-开源分享(二)

目录 市场背景分析 一、 抖音seo矩阵系统开发部署流程 二、 源码开发功能构思 三、 抖音seo源码开发部署注意事项 四、 部分开发代码展示 市场背景分析 账号矩阵是通过不同平台不同账号之间建立联系&#xff0c;通过将同一品牌下不同平台不同账号的粉丝流量进行账号互通&a…

网络安全 log4j漏洞复现

前言&#xff1a; log4j被爆出“史诗级”漏洞。其危害非常大&#xff0c;影响非常广。该漏洞非常容易利用&#xff0c;可以执行任意代码。这个漏洞的影响可谓是重量级的。 漏洞描述&#xff1a; 由于Apache Log4j存在递归解析功能&#xff0c;未取得身份认证的用户&#xff…

每次装完 homebrew,ohmyzsh 就会报错:Insecure completion-dependent directories detected:

参考:https://zhuanlan.zhihu.com/p/313037188 这是因为在big sur安装homebrew后&#xff0c;会在/usr/local/share/生成一个zsh文件夹&#xff0c;里面包含了 因此&#xff0c;zsh文件默认设置的权限是775&#xff0c;也就是group user有writer的权利&#xff0c;zsh认为这是…

【笔记】数字电路基础1 - 门电路

目录 数字电路基础与门电路数电基础基本门电路复合门电路TTL 门电路CMOS 门电路 数字电路基础与门电路 数电基础 数字电路中常将 0 &#xff5e; 1V 范围的电压称为低电平&#xff0c;用“0”表示&#xff1b;而将 3 &#xff5e; 5V 范围的电压称为高电平&#xff0c;用“1”…

【深入浅出 Spring Security(十二)】使用第三方(Github)授权登录

使用第三方&#xff08;Github&#xff09;授权登录 一、OAuth2 简单概述二、OAuth2 四种授权模式之授权码模式三、Github 授权登录准备工作创建 Spring Boot 项目Vue 测试代码测试效果 &#xff08;Github授权登录的具体操作在目录第三“章”&#xff09; 一、OAuth2 简单概述…

【实战】 四、JWT、用户认证与异步请求(上) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(四)

文章目录 一、项目起航&#xff1a;项目初始化与配置二、React 与 Hook 应用&#xff1a;实现项目列表三、TS 应用&#xff1a;JS神助攻 - 强类型四、JWT、用户认证与异步请求1.login2.middleware of json-server3.jira-dev-tool&#xff08;imooc-jira-tool&#xff09;安装问…

排序之玩转qsort函数——【C语言】

说起排序&#xff0c;我们会想起许多算法&#xff0c;在之前的博客中我也写到过&#xff0c;比如&#xff1a;冒泡排序法、快速排序法、选择排序法等等。其实在C语言中一直有一个可以将数组中的内容进行排序的函数且功能完善内容齐全的库函数——qsort函数。今天就让我们来探索…

SpringBoot原理分析 | Spring Data整合:JDBC、Druid、Mybatis

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; Spring Data Spring Data是一个用于简化数据库访问和操作的开源框架&#xff0c;为开发人员提供了一种通用的方式来处理不同类型的数据存储&#xff0c;例如关系型数据…