Tagged

software

!!!!

robotics

Simulink Realtime(一)

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

robotics

bebop2 + ros (1)

按照 prgumd 的文档 操作软件部分。按照  bebop_autonomy 文档启动,唯一需要修改的是 bebbebop_driver/launch/bebop_nodelet.launch 下面的 drone_type  设置为  `bebop2` 然后可以使用ros命令操作bebop,发送 takeoff 指令后,bebop会起飞,并保持在一定高度(1m?)。我是到这个时候才知道获取odom的频率是5hz(图片为30hz)且并没有原始传感器数据输出。可能会对某些slam算法有影响(可能的解决方案 1.tx2的载版带imu 2.tx2的载版在外挂一个imu)?然后准备试试 ORB_SLAM2 的cuda版,(tx2在mode 0 下 6核cpu 性能居然比i7低压版差到不能接受的情况)。参考  ORB_SLAM2 cuda enhanced

robotics

xenomai3 (1)

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