robotics

some subtle about robotics!!!!
robotics

Simscape (一)

由于机器人的实际系统是用的simulink搭建,所以仿真也自然的使用的simulink的simscape,实际发现这货可以做到ros control的效果(即仿真与实际机器人可以只使用一个控制程序代码) 实现simscape的简易流程: 1. 使用smimport导入urdf,然后在人工修改结构,使它的结构达到最简。(虽然simscape可以直接由solidwork这类的软件导出,我尝试了一下,生成的文件的居然产生了上千个link。。。) 2. 构造接触, 我使用的Simscape Multibody Contact Forces Library [https://www.mathworks.com/matlabcentral/fileexchange/47417-simscape-multibody-contact-forces-library] 然后参数都是默认的。 3. 构造用于电机与传感器的总线信号,然后在matlab system里面实现控制程序。(最后我初始化化总线型号的脚本,成功的突破了300行)。 4. 构造合适的初始化位置(特别是base
1 min read
robotics

Simulink Realtime(一)

最近做的几个机器人的控制系统都是用Slrt搭建的,这里记录一下遇见的几个坑: 1. slrt 从matlab 2018a后不在支持普通的电脑,所以我们选择了2017b作为我们的matlab版本,然后vs要选择2015,系统才能正常工作。 2. matlab 2017b的slrt不支持太新的intel cpu,我们最后选择i7 四代作为机器人的主控板。 3. 机器人的通信系统使用ethercat(个人感觉应该是最方便的通信),网络芯片使用i210(淘宝上唯一能买到的被支持的rtnet的网卡,同时也有mini pcie的i210)。 4. ethercat的接口的电机驱动器可能会挑运行twincat的网卡,所以在开发机上也使用i210。 5. 如果simulink的总线信号出现报错,可能是因为总线的定义数据的顺序有问题。 6. ethercat分支器可以直接自己画电路板实现。 7. 急停加在从站上受主站控制,可以更快的保护机器人。 8. 电机驱动运行在PT模式下比CST模式更加稳定(可能是通信速度不够快) 9. 配置elmo电机驱动的pdo的时候,修改了它的上一
1 min read
robotics Featured

PMSM控制-前言

原因 大约在2018年年中的时候看见了ben katz [http://build-its-inprogress.blogspot.com/p/about.html] 的博客,对他上面的hopper机器人比较感兴趣,所以开始计划自己实现一个。到了9月份的时候,我开始看SLIP的论文,居然发现那个hopper机器人就是最简单的一维SLIP模型。10月份,在IROS会议上, Sangbae Kim 神秘发布mini cheetah的视频 ,当时还要求大家不要拍照。然后到了2019年1月份我看见了ben的硕士论文,才知道mini cheetah 是他的硕士毕业论文。顺便这个时候,我结束了hzd与slip算法的学习与实现,于是决定从底层开始做起。开始想先做一个跑阻抗控制的永磁同步电机的电机驱动器。 元件的选择 mcu的选择 一开始,我想用ti的一套实现,原因是我们这里的电机驱动用的MCU为ti的28069,电机驱动IC用的drv8301。我也买了28069和DRV8305 ,后来玩了2天,感觉不能习惯它的IDE,于是又改回了stm32。然后看见f3为了st主推的用于电机驱动的mcu,就买了
2 min read
robotics

bebop2 + ros (1)

1. 按照 prgumd [https://github.com/prgumd/Parrot-Bebop2-Setup] 的文档 操作软件部分。 2. 按照bebop_autonomy [https://bebop-autonomy.readthedocs.io/en/latest/] 文档启动,唯一需要修改的是 bebbebop_driver/launch/bebop_nodelet.launch 下面的 drone_type  设置为  `bebop2` 3. 然后可以使用ros命令操作bebop,发送 takeoff 指令后,bebop会起飞,并保持在一定高度(1m?)。 4. 我是到这个时候才知道获取odom的频率是5hz(图片为30hz)且并没有原始传感器数据输出。可能会对某些slam算法有影响(可能的解决方案 1.tx2的载版带imu 2.tx2的载版在外挂一个imu)
1 min read
robotics

xenomai3 (1)

xenomai 安装流程 大体按照 rtt-lwr [http://rtt-lwr.readthedocs.io/en/latest/rtpc/xenomai3.html] 的流程走(xenomai 3.0.6 在2018年4月24日时会编译失败, 然而从git上面拉的最新代码能够正常编译)。然后我们需要增加2个选项。 1. RTnet的驱动要选上INTEL 82575(igb)(我们使用的I210网卡基于这个) 2. 在Xenomai的driver选项下选择Real-time IPC drivers(用于实时与非实时线程的通信)。 安装之后的操作 1. ~将/usr/xenomai拥有者和group使用chown命令修改为自己与xenomai组。 2. 修改ripc权限: 1. sudo vim 99-ripc.rules(/etc/udev/rules.d/) 2. 输入 KERNEL=
1 min read