dummy机械臂代码学习(六)

   在开始之前呢,就如何学习别人的代码,想跟大家分享两个看代码的模式 :top-down bottom-up

        top-down模式呢就是画总体代码框架图,这有助于我们总体掌握代码内容。

        botton-up模式呢就相当于我们前面提过的“右键,go to defination”,了解其底层函数。

        这部分呢参考了一位作者的回答

        https://www.zhihu.com/question/21186887/answer/18195570

        ok,回归正题。之前的文章都是逐字逐句的去讲解代码,那么ref_tool文件夹下的各个文件到底是干什么的呢?让我们来整体看看吧!

        其实呢,software文件夹下包含两个文件夹——CLI-Tool命令行界面工具,Command Line Interface)和DummyStudio,DummyStudio的软件作者已放在GitHub,我们主要看CLI-Tool文件夹就行。

        

       

        CLI-Tool文件夹下又包含四个子文件夹,以及一个gitignore文件、一个run_shell.py的python文件、一个run.bat文件和一个zadig exe文件。

        

       1、 gitignore文件呢是用于指定哪些文件和文件夹应该被版本控制系统忽略。的目的呢就是确保在版本控制过程中,不必要的或自动生成的文件被忽略掉,来保持代码仓库的干净和整洁。


# Python Distribution / packaging
.Python
#env/
#build/
#develop-eggs/
/dist/
#downloads/
#eggs/
#.eggs/
#lib/
#lib64/
#parts/
#sdist/
#var/
/*.egg-info/
#.installed.cfg
#*.egg
/MANIFEST

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
*.pyc

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

        2、run_shell.py文件呢是一些命令行工具。它使用argparse库解析命令行参数,并根据不同的命令执行相应的操作。具体内容呢在前两篇文章中已提到。                                                

        3、run.bat文件是一个Windows批处理脚本。它的作用是通过运行run_shell.py脚本来执行一个IPython交互式shell会话。Windows批处理脚本是一种用于在Windows操作系统上批量运行命令的脚本文件。它使用Windows命令行解释器执行一系列命令,可以通过简单的脚本语法来实现自动化任务。

@echo off           #关闭命令行中的命令回显功能,不会显示执行的命令
if not defined TAG (   #如果变量TAG没有被定义,就执行括号中的命令。
    set TAG=1          #将变量TAG的值设置为1。
    start wt -p "cmd" %0  #打开一个新的Windows Terminal窗口,并在其中运行cmd命令。%0是指当前脚本的路径。
    exit  #退出当前脚本的执行。
)

 
ipython "%~dp0\run_shell.py" -- %*
#ipython是运行IPython的命令;%~dp0是指当前脚本的完整路径;\run_shell.py是要执行的Python脚本的相对路径
# -- %*表示将后续的命令行参数传递给run_shell.py脚本。

        4、zadig-2.5exe文件。Zadig是一个用于Windows操作系统的开源工具,它的主要功能是安装和配置USB驱动程序。它可以帮助用户更方便地管理和配置USB设备的驱动程序。

        dummy机械臂的作者在README里提到过,已添加命令行调试工具reftool

        它的位置呢就在CLI-Tool文件下

        里面呢又包含这些文件

        后续就让我们来看看里面的内容吧!

### 关于 Dummy 机械的技术资料与控制方法 #### 技术文档 Dummy 机械通常作为教学或实验用途的虚拟模型存在,其技术文档可能并不像实际工业级机械那样详尽。然而,在 ROS 和 Gazebo 的生态系统中,可以找到类似的资源来帮助理解如何操作和模拟机械的行为。 对于类似 Open Manipulator 这样的项目,提供了丰富的技术文档和支持材料[^1]。虽然这些文档主要针对特定硬件平台(如 OpenManipulator),但它们的概念和技术实现方式同样适用于其他类型的机械,包括 Dummy 机械。开发者可以通过阅读该项目中的 README 文件以及 Wiki 页面获取关于配置、启动和调试的信息。 另外,MuJoCo 提供了一种强大的物理仿真工具集,能够用于创建高度逼真的机械运动学和动力学场景[^2]。尽管 MuJoCo 更专注于高性能仿真实验而非具体某款机械的操作指南,但它内部支持自定义 XML 配置文件以描述任意复杂度的机器人结构。因此,如果目标是构建一个名为 "Dummy" 的虚构机械,则可以从头设计它的几何形状、关节属性及其他参数,并利用 MuJoCo 来验证设计方案的有效性。 #### 控制方法 在 ROS 中,MoveIt! 被广泛应用于路径规划和服务型任务自动化领域。通过集成 MoveIt! 插件到您的 Gazebo 模拟环境中,您可以轻松地测试各种高级功能,比如避障导航或者抓取物体等动作序列执行过程。此外,ROS Actionlib 库允许您定义异步服务接口以便远程客户端请求完成某些预定工作流;这尤其适合那些需要长时间运行的任务类型。 至于低层次控制器方面,PID (比例-积分-微分)算法是最基础也是最常用的反馈调节机制之一。假设我们已经知道每个伺服电机的目标角度位置值之后,就可以基于当前测量得到的实际偏差量计算出相应的校正指令信号发送回去调整速度直至达到期望设定点为止。当然还有更先进的现代控制理论可供选择,例如 LQR(线性二次型最优控制),H-infinity 控制等等,不过这些都是建立在扎实的经典控制基础上进一步发展出来的成果而已。 #### 开发教程 为了更好地掌握上述提到的知识要点及其实践应用技巧,这里推荐几条学习途径: 1. **官方文档**:始终优先查阅官方发布的权威手册说明,因为那里包含了最新版本的功能特性介绍以及最佳实践经验分享。 2. **在线课程**:Coursera, Udemy 或 edX 等教育平台上都有专门讲解 ROS 及其周边生态系统的系列视频讲座,跟随讲师一步步动手实操练习有助于加深印象巩固记忆效果。 3. **社区论坛交流讨论区**:加入活跃的相关主题群组参与话题互动问答环节,不仅可以及时解决遇到的各种难题困惑还能结识志同道合的朋友共同进步成长。 以下是 Python 实现的一个简单 PID 控制器例子: ```python class PIDController: def __init__(self, kp=1.0, ki=0.0, kd=0.0): self.kp = kp self.ki = ki self.kd = kd self.prev_error = 0 self.integral = 0 def update(self, error, dt): derivative = (error - self.prev_error) / dt self.integral += error * dt output = self.kp * error + self.ki * self.integral + self.kd * derivative self.prev_error = error return output ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值