因为传感器本身存在放置一段时间后参数不可用的情况,因此需要在ros下对参数进行实时辨识。
实践总结
ros-python
1、不需要进行catkin_make;
2、消息格式需要注意与c++中的不同方式;
3、对于在类中自定义函数中定义的参数,需要加上self才能在其他函数比如__init__中调用。
4、vstack函数虽然可以叠加,但是需要有等号;同时这里有时候叠加有问题???
5、对于用到的话题,可以不用订阅者,可以用如下语句:
rospy.wait_for_message("/force0",WrenchStamped, timeout=None)
txt读取
1、txt文件中不能有空格
2、py中读取程序
with open('q.txt', 'r') as f:
data = f.readlines() # 将txt中所有字符串读入data
for line in data:
numbers = line.split() # 将数据分隔
numbers_float = map(float, numbers) #转化为浮点数
numbers_float = array(numbers_float)*pi/180.0
ur
当使用ctrl+c关闭ros控制的时候,如果关闭慢,而再用ctrl+z,会出现重新连接连接不上的问题。
后期工作
加入实时辨识以后,数据的可用度、易用性提高;
这项工作还没有完全结束,后期工作有:
1、自定义消息,将辨识的结果保存到txt文件;
2、节点订阅力信息,关节角度,并在c++下读取参数,实现力的补偿;
3、z轴重要,第五关节角连续变化。
4、根据x,y得到偏转角,得到基座标下力。
5、构建雅克比矩阵
6、根据速度映射得到关节速度(学习franka中笛卡尔空间力阻抗控制)
7、阅读论文