第三章 IGH及preempt-rt的安装及与零差云控模组的连接

本文详细介绍了如何在Ubuntu 18.04上安装preempt-rt实时补丁和IGH程序,包括下载安装包、配置内核、编译安装、网络配置以及启动ethercat,确保与零差云控关节模组的ethercat通信正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

零差云控关节模组

https://www.zeroerr.cn/download/eRob.html 获取零差云控最新资料

第一章 零差云控关节模组介绍

第二章 电机拆解

第三章 IGH及preempt-rt的安装

第四章 命令行读取电机的信息

第五章 机械臂的组装及控制


前言

本文中使用的linux是ubuntu18.04,双系统。IGH使用的是ethercat IGH1.5.2。

一、零差云控eRob70I的ethercat通信

在这里插入图片描述

图来源于零差云控关节模组使用手册。

红框内为ethercat接线方式,通过两条双绞线(共四根线)连接,线包中提供的线较短,且质量不是很好,推荐自行选购双绞线及JST接头自己做线。
由主站网卡-slave1-slave2- ···-slaveN,每台网口包括ecat in 及ecat out,ecat in连接主站网卡或上一台模组,ecat out连接下一台模组,最后一台 模组的ecat out可不连接,在使用冗余时可用。

1、IGH与单个关节模组通信

直流电源48V供电、ethercat通讯线连接、编码器电池安装并复位后,便可进行通讯测试
1、启动主站

$ sudo /etc/init.d/ethercat restart

2、查看电机的信息

$ sudo ethercat cstruct -a 0

可以看到电机的各种信息如下:
注:以下不是显示的信息,大概是这样,后期再改

static struct{
   
    unsigned int operation_mode;
    unsigned int target_position;
    unsigned int digital_outputs;
    unsigned int ctrl_word;
    unsigned int position_actual_value;
    unsigned int digital_inputs;
    unsigned int status_word;
    int actual_current;
    unsigned int actual_speed;
    int  actual_torque;
}offset,offset1,offset2,offset3,offset4,offset5;
static ec_pdo_entry_info_t slave_0_pdo_entries[] = {
   
    {
   0x607a, 0x00, 32}, /* Target Position */
    {
   0x60fe, 0x00, 32}, /* Digital outputs */
    {
   0x6040, 0x00, 16}, /* Control Word */
    /*TxPdo 0x1A00*/
    {
   0x6064, 0x00, 32}, /* Position Actual Value */
    {
   0x60fd, 0x00, 32}, /* Digital inputs */
    {
   0x6041, 0x00, 16}, /* Status Word */
};
static ec_pdo_info_t slave_0_pdos[] = {
                    
    {
   0x1600, 3, slave_0_pdo_entries + 0},
    {
   0x1a00, 3
### 如何在 Oracle 数据库中新增列字段 在 Oracle 数据库中,可以通过 `ALTER TABLE` 语句向现有表中添加新列。以下是具体的语法和示例: #### 基本语法 用于添加单个或多个列的语法如下所示: ```sql ALTER TABLE table_name ADD (column_name data_type [DEFAULT default_value] [NULL | NOT NULL]); ``` 其中: - `table_name` 是要修改的目标表名; - `column_name` 是新列的名字; - `data_type` 表明该列的数据类型; - `[DEFAULT default_value]` 可选参数,定义新列的默认值; - `[NULL | NOT NULL]` 定义该列是否允许为空。 此语法适用于大多数情况下的简单列添加需求[^2]。 #### 示例:为员工表增加年龄列 如果希望在一个名为 `employees` 的表中新增一列 `age` 并为其设定默认值,则可以执行以下 SQL 语句: ```sql ALTER TABLE employees ADD age INT DEFAULT 0; ``` 这条命令不仅会向 `employees` 表中加入整数类型的 `age` 列,还会自动填充已有记录中的 `age` 字段,默认赋值为[^5]。 #### 设置列注释 为了提高数据库可读性和维护便利性,还可以通过 `COMMENT ON COLUMN` 给刚创建好的列附加描述性的备注信息。例如给刚才新建的 `age` 列加上解释文字 “Employee's Age”,可以用下面这段代码完成: ```sql COMMENT ON COLUMN employees.age IS 'Employee''s Age'; ``` 注意这里由于字符串内部包含单引号所以需要重复写成两个连续的单引号以转义特殊字符[^1]。 #### 调整列顺序(间接方法) 需要注意的是,标准SQL并不支持直接指定新添列为某特定位置之后的操作;不过有一种变通的办法就是先重命名原目标列再引入同名的新属性达到近似效果。比如想把某个叫作 `Field3` 的项目改名为其他名称从而腾出空间让位给即将插入的新成员的话,可用这样的形式表达出来: ```sql ALTER TABLE TableNM RENAME COLUMN Field3 TO NewField; ``` 然后再按照前述方式正常追加所需的额外项即可[^3]。 #### 特殊注意事项 对于涉及分区管理的情况,请留意可能存在的限制条件以及相应的调整措施。例如当面对带有复杂分片结构的大规模生产环境时,应当谨慎对待任何结构调整动作以防意外影响业务运行状态。此时或许需要用到专门针对这种情况设计的功能指令集,像这样子的形式: ```sql ALTER TABLE table_name RESET PARTITION; ``` 尽管这通常不是日常开发过程中经常遇到的需求场景之一,但在某些特定条件下仍然具有重要意义[^4]。 ### 总结 综上所述,在Oracle数据库里增添新的列可通过简单的`ALTER TABLE ... ADD...`语句轻松达成目的,并且能够灵活配置诸如初始值之类的细节选项以便更好地满足实际应用场合的要求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值