本课程需要在小车已经烧录好出厂固件的情况下才可以配置固件参数,小车修改控制板固件参数的意义在于让小车功能更加符合个人需求。出厂固件自带默认参数,非必要情况下可不修改。
小车控制板出厂已经烧录好出厂固件,如果已经烧录过其他固件,请根据资料【12.控制板课程\1.控制板开发环境搭建\4.串口烧录STM32固件】课程重新烧录出厂固件,出厂固件存放在资料【附件\控制板出厂固件】中。
本次课程以Jetson Orin系列主板为例,其他主板操作一样。
注意:运行修改配置脚本前,需要先关闭microros代理。
确保控制板的Type-C USB Connect接口连接上主板的USB口。
打开系统终端,找到并打开用户目录下的【config_robot.py】文件。
vim ~/config_robot.py
拉到文件最底下,配置参数主要包括set_ros_domain_id,set_ros_namespace,set_motor_pid_parm, set_imu_yaw_pid_parm, set_ros_scale_line, set_ros_scale_angular, set_arm_mid_value。
如果需要修改某个参数,请移除对应函数前的注释符。
x# robot.set_ros_domain_id(30)
# robot.set_ros_namespace("")
# robot.set_motor_pid_parm(0.8, 0.06, 0.5)
# robot.set_imu_yaw_pid_parm(0.6, 0, 0.3)
# robot.set_ros_scale_line(1.0)
# robot.set_ros_scale_angular(1.0)
# arm_mid_value = [2000, 2000, 2000, 2000, 1486, 3100]
# robot.set_arm_mid_value(arm_mid_value)
其中,set_ros_domain_id表示设置小车ROS DOMAIN ID,范围为0~100,如果局域网内有多台设备,为了避免互相影响,则每人设置不同的ROS DOMAIN ID。注意要和系统终端.bashrc中的ROS_DOMAIN_ID值保持一致才可以通讯。
set_ros_namespace表示设置小车ROS的命名空间,主要用于局域网多车控制功能。
set_motor_pid_parm表示设置小车电机速度的PID参数。
set_imu_yaw_pid_parm表示设置小车使用IMU校准方向的PID参数。
set_ros_scale_line表示设置小车ROS线速度缩放比例。
set_ros_scale_angular表示设置小车ROS角速度缩放比例。
set_arm_mid_value表示设置机械臂中值偏差的功能,主要用于快速恢复机械臂校准值,一般情况下不需要修改。注意:如果修改此值,会影响校准机械臂的值。如果需要校准机械臂,请参考校准机械臂的教程。
这里以修改domain id为31为例:
注意:运行修改配置脚本前,需要先关闭microros代理。
打开系统终端,然后运行以下命令开始写入配置
xxxxxxxxxx
python3 ~/config_robot.py
可以看到最终读取出来的所有参数值。