控制总线舵机机械臂

1、实验目标

控制Transbot上的总线舵机机械臂运动,通过滑块控制机械臂运动,读取机械臂当前关节的角度值。

 

2、实验准备

下图片中红色方框的位置就是总线舵机机械臂的接口,其中Servo1和Servo2两个接口为并联接口,功能完全一致,连接机械臂时只需要连接其中一个接口即可。该接口具有防反接功能,使用Transbot的机械臂排线无需担心插反问题。

右边的红色指示灯D7是机械臂电压的指示灯,如果D7指示灯常亮,则表示机械臂供电正常,如果D7指示灯熄灭,则表示机械臂供电异常。

image-20210906121708450

更多关于总线舵机的资料,请查看以下网页内容:

15kg串行总线智能舵机 (yahboom.com)

控制总线舵机需要用到的Transbot_Lib库函数有以下内容:

机械臂控制参考系:设直立向上夹紧状态,三个舵机都为180度,7/8号顺时针(向下)转为减,逆时针(向上)转为增,夹子松开为减,夹紧为增。

参数解释:控制一个总线舵机,s_id:对应ID编号:7/8/9,run_time控制舵机运行的时间,有效范围内,时间越小,舵机转动越快,单位为毫秒,最小值为0。

s_angle:对应舵机角度值,7:[0, 225], 8:[30, 270], 9:[30, 180]

servo_id=7,s_angle=[0, 225]

servo_id=8,s_angle=[30, 270]

servo_id=9,s_angle=[30, 180]

返回值:无。

参数解释:控制三个总线舵机,angle_7、angle_8、angle_9控制三个舵机的角度值,angle_7=[0, 225], angle_8=[30, 270], angle_9=[30, 180],run_time控制舵机运行的时间,有效范围内,时间越小,舵机转动越快,单位为毫秒,最小值为0。

返回值:无。

参数解释:关闭/打开总线舵机扭矩力, enable=[0, 1]。

enable=0:关闭舵机扭矩力,可以用手转动舵机,但命令无法控制转动;enable=1:打开扭矩力,命令可以控制转动,不可以用手转动舵机。

返回值:无

参数解释:读取总线舵机的角度,s_id表示要读取的舵机的ID号,s_id=[7-9]

返回值:返回输入ID当前的角度,读取错误返回-1。

参数解释:一次性读取三个舵机的角度[xx, xx, xx],如果某个舵机错误则那一位为-1

返回值:[angle_7, angle_8, angle_9]。

 

3、实验效果

请查看课程配套视频。

注意:运行程序前,请把机械臂的三个自由度都掰到竖直向上再连接机械臂。否则第一次运行程序时,机械臂时会自动立起来。

 

4、程序源码

将Transbot机器人打开电源开机,并打开树莓派或者远程电脑的浏览器进入Jupyter lab编辑器。

参考代码路径:/home/pi/py_install_V3.2.5/py_install/Samples/6.arm_transbot.ipynb