机械标定分以下两个步骤运行,分别是标定中位值、标定偏移量。
如果使用Yahboom 出厂镜像,开机会自动运行通讯代理。
此时输入指令,让机械臂竖直向上,减少标定难度:
ros2 topic pub /arm6_joints arm_msgs/msg/ArmJoints {"joint1: 90, joint2: 90, joint3: 90, joint4: 90, joint5: 90, joint6: 180, time: 1500"} --once
随后在代理终端使用ctrl+c 关闭代理程序,再次运行下列指令,使舵机卸力
xxxxxxxxxx
python3 ~/calibrate_arm.py
运行后,会打印底层控制板版本V1.X ,如果没有打印则需要重新运行此程序(或者代理未关闭占用通讯串口),运行完成后,6个舵机可以随意掰动,然后观察机械臂哪个舵机未伸直,尽可能地让机械臂呈现一条直线,夹爪完全合拢,呈现“L”型如下图所示,
然后在启动calibrate.py的终端输入y
,确认归中完毕,然后按下回车完成标定中位值。标定会分别打印六个舵机state 值,只有当state=1 才标定成功。
在终端输入以下指令,重新连接代理,
xxxxxxxxxx
sh start_agent.sh
Orin主板直接打开终端,输入本节课程提及的指令即可。这里以进入树莓派5主板为例。
打开终端输入以下指令启动相机和机械臂解算程序,
xxxxxxxxxx
ros2 launch M3Pro_demo camera_arm_kin.launch.py
开启第二个终端,输入以下指令,启动标定偏移量程序,
xxxxxxxxxx
ros2 run M3Pro_demo arm_offset
程序运行后,机械臂会运行到标定姿态,然后程序会出现一个画面,把4x4x4木块(即提供的最大木块)的机器码画面中的蓝色框内,如下图所示,
最后按下空格键,完成偏移量标定,标定的偏移量数据保存在yahboomcar_ws/src/arm_kin/param/offset_value.yaml中。
运行程序编译arm_kin 功能包,使更新后的标定文件生效。
xcd ~/yahboomcar_ws
colcon build --packages-select arm_kin
树莓派5和Jetson-Nano主板用户需要进入到小车的docker镜像中操作,需要在宿主机中打开终端,然后输入进入docker容器的指令,进入到docker容器后的终端里边输入本节课程提及的指令,进入小车docker镜像可以参考本产品教程【0.说明书和安装步骤】中的【进入小车Dockder(Jetson-Nano和树莓派5用户看这里)】的内容。
如果使用Yahboom 出厂镜像,开机会自动运行通讯代理。
此时在docker中输入指令,让机械臂竖直向上,减少标定难度:
xxxxxxxxxx
ros2 topic pub /arm6_joints arm_msgs/msg/ArmJoints {"joint1: 90, joint2: 90, joint3: 90, joint4: 90, joint5: 90, joint6: 180, time: 1500"} --once
随后使用ctrl+c 关闭代理程序,再次在docker运行下列指令,使舵机卸力
xxxxxxxxxx
python3 calibrate.py
运行后,会打印底层控制板版本V1.X ,如果没有打印则需要重新运行此程序,运行完成后,6个舵机可以随意掰动,然后观察机械臂哪个舵机不是直线,尽可能地让机械臂呈现一条直线,夹爪完全合拢,如下图所示,
然后在启动calibrate.py的终端输入y
,确认归中完毕,然后按下回车完成标定中位值。标定会分别打印六个舵机state 值,只有当state=1 才标定成功。
接下来在主机内运行通讯代理
xxxxxxxxxx
sh start_agent.sh
打开Docker终端输入以下指令启动相机和机械臂解算程序,
xxxxxxxxxx
ros2 launch M3Pro_demo camera_arm_kin.launch.py
开启第二个终端,输入以下指令,启动标定偏移量程序,
xxxxxxxxxx
ros2 run M3Pro_demo arm_offset
程序运行后,机械臂会运行到标定姿态,然后程序会出现一个画面,把4x4x4木块(即提供的最大木块)的机器码画面中的蓝色框内,如下图所示,
最后按下空格键,完成偏移量标定,标定的偏移量数据保存在yahboomcar_ws/src/arm_kin/param/offset_value.yaml中。
运行程序编译arm_kin 功能包,使更新后的标定文件生效。
xxxxxxxxxx
cd ~/yahboomcar_ws
colcon build --packages-select arm_kin