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

做网站需要哪些软件鞍山做网站的公司

做网站需要哪些软件,鞍山做网站的公司,网站换空间的流程,网页设计网站方案视频讲解: 复刻低成本机械臂 SO-ARM100 单关节控制(附代码) 代码仓库:GitHub - LitchiCheng/SO-ARM100: Some Test code on SO-ARM100 昨天用bambot的web的方式调试了整个机械臂,对于后面的仿真的sim2real来说&#x…

视频讲解:

复刻低成本机械臂 SO-ARM100 单关节控制(附代码)

代码仓库:GitHub - LitchiCheng/SO-ARM100: Some Test code on SO-ARM100

昨天用bambot的web的方式调试了整个机械臂,对于后面的仿真的sim2real来说,还是需要单独封装好这些控制,方便后面迁移到其他的测试平台中。

翻了lerobot的代码,可以看到对于feetech舵机的控制等封装已经挺完善,本质就是通过串口和舵机进行协议通信,这个在 lerobot/lerobot/common/robot_devices/motors/feetech.py 中可以看下相应的寄存器定义

接下来我们就针对lerobot这部分代码进行测试,测试单个关节的运动,首先是创建一个FeetechMotor的类,传入port和id就就可以方便的调试某个电机

import sys
import os
import time
parent_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(parent_dir)from feetech import FeetechMotorsBusConfig
from feetech import FeetechMotorsBusclass FeetechMotor:def __init__(self, motor_id, port="/dev/ttyACM0"):motors={# name: (index, model)"shoulder_pan": [1, "sts3215"],"shoulder_lift": [2, "sts3215"],"elbow_flex": [3, "sts3215"],"wrist_flex": [4, "sts3215"],"wrist_roll": [5, "sts3215"],"gripper": [6, "sts3215"],},self.motor_id = motor_idself.motors_bus = FeetechMotorsBus(FeetechMotorsBusConfig(port=port,motors=motors,))self.motors_bus.connect()def setPosition(self, position):self.motors_bus.write_with_motor_ids(self.motors_bus.motor_models, self.motor_id, "Goal_Position", position)def getPosition(self):return self.motors_bus.read_with_motor_ids(self.motors_bus.motor_models, self.motor_id, "Present_Position")def close(self):self.motors_bus.disconnect()

实验测试目标,让某个关节往复运动,声明一个函数generatePositionSequence用来生成位置的序列

def generatePositionSequence(start_position, range_value, loops=1):sequence = []for _ in range(loops):forward_positions = list(range(start_position, start_position + range_value + 1))sequence.extend(forward_positions)backward_positions = list(range(start_position + range_value - 1, start_position - 1, -1))sequence.extend(backward_positions)return sequence

执行部分,指定电机id和串口名称,开始让电机运动到2048也就是中间的位置,然后再开始往复运动

if __name__ == "__main__":motor = FeetechMotor(5, "/dev/ttyACM0")motor.setPosition(2048)time.sleep(1)start_position = motor.getPosition()print(f"Start position: {start_position}")range_val = 600loop_count = 10result = generatePositionSequence(start_position, range_val, loop_count)for position in result:motor.setPosition(position)current_position = motor.getPosition()print(f"Current position: {current_position}, Goal position: {position}")time.sleep(0.005)motor.close()

http://www.dtcms.com/wzjs/217100.html

相关文章:

  • 比较好的能组数学卷的网站做教案的鼓楼网站seo搜索引擎优化
  • 做a的视频在线观看网站电商平台运营方案思路
  • 邢台网站建设哪家好seo网络贸易网站推广
  • WordPress手机不显示seo优化外包
  • 桂林疫情最新消息今天新增seo网站快速排名外包
  • 网站建设项目延期验收申请成都做整站优化
  • 国外政府网站建设seo诊断网站
  • 广西搜索推广大连seo建站
  • 网站充值功能怎么做百度灰色关键词代发
  • 重庆博达建设集团网站2345网址导航怎么卸载
  • 贸易型企业网站建设今日国际新闻最新消息
  • 安装完wordpress第一件事学seo建网站
  • 上海好的高端网站建设产品免费推广网站有哪些
  • 咕叽网 wordpressseo教程技术整站优化
  • 廊坊网站排名方案谷歌搜索引擎入口2023
  • 政府网站信息内容建设实施方案软文标题例子
  • 360网站建设班级优化大师功能介绍
  • 竹子建站下载网络营销策划论文
  • 使用他人商标做网站搜索词易思企业网站管理系统
  • 河北中瑞建设集团有限公司网站北京seo优化方案
  • 做ipo尽调需要用到的网站镇江seo优化
  • 手机网站设计方案百度问答一天能赚100块吗
  • 用dw制作公司网站百度关键词推广怎么收费
  • 网站在线交谈免费网站收录网站推广
  • 最新网站推广哪家好厦门网
  • wordpress nginx apache重庆seo排名技术
  • 工信部个人网站备案深圳专业建站公司
  • 广告制作费和广告服务费区别智推教育seo课程
  • 网站建设难不难刚刚发生了一件大事
  • 中山企业网站制作公司网络营销的方式有几种