控制Rosmaster上的串口舵机运动,通过滑块控制机串口舵机,读取串口舵机当前的角度值。
下图片中红色方框的位置就是串口舵机的接口,该接口具有防反接功能,使用Rosmaster的舵机排线无需担心插反问题。
更多关于串口舵机的资料,请查看以下网页内容:
控制串口舵机需要用到的Rosmaster_Lib库函数有以下内容:
set_uart_servo_angle(s_id, s_angle, run_time=500)
参数解释:控制一个串口舵机,s_id:对应ID编号:1~6,run_time控制舵机运行的时间,有效范围内,时间越小,舵机转动越快,单位为毫秒,最小值为0。
s_angle:对应舵机角度值,根据s_id不同范围不同,1~4:[0, 180], 5:[0, 270], 6:[30, 180]
返回值:无。
xxxxxxxxxx
set_uart_servo_angle_array(angle_s=[90, 90, 90, 90, 90, 180], run_time=500)
参数解释:控制六个串口舵机,angle_s控制六个舵机的角度值,控制范围与上面的范围一样,run_time控制舵机运行的时间,有效范围内,时间越小,舵机转动越快,单位为毫秒,最小值为0。
返回值:无。
xxxxxxxxxx
set_uart_servo_torque(enable)
参数解释:关闭/打开串口舵机扭矩力, enable=[0, 1]。
enable=0:关闭舵机扭矩力,可以用手转动舵机,但命令无法控制转动;enable=1:打开扭矩力,命令可以控制转动,不可以用手转动舵机。
返回值:无
xxxxxxxxxx
get_uart_servo_angle(s_id)
参数解释:读取串口舵机的角度,s_id表示要读取的舵机的ID号,s_id=[1-6]
返回值:返回输入ID当前的角度,读取错误返回-1。
xxxxxxxxxx
get_uart_servo_angle_array()
参数解释:一次性读取六个舵机的角度[xx, xx, xx, xx, xx, xx],如果某个舵机错误则那一位为-1
返回值:[angle_1, angle_2, angle_3, angle_4, angle_5, angle_6]。
请查看课程配套视频。
将Rosmaster机器人打开电源开机,并打开Jetson Nano或者远程电脑的浏览器进入Jupyter lab编辑器。
参考代码路径:Rosmaster/Samples/9.arm_servo.ipynb