JetRacer ROS AI Kit 教程六、使用ROS图形工具查看节点话题
来自Waveshare Wiki
JetRacer ROS AI Kit 初级教程目录
- JetRacer ROS AI Kit 教程一、组装小车
- JetRacer ROS AI Kit 教程二、安装Jetson nano 镜像
- JetRacer ROS AI Kit 教程三、安装Ubuntu虚拟机 镜像
- JetRacer ROS AI Kit 教程四、配置多机通讯
- JetRacer ROS AI Kit 教程五、机器人移动控制
- JetRacer ROS AI Kit 教程六、使用ROS图形工具查看节点话题
- JetRacer ROS AI Kit 教程七、机器人里程计校准
- JetRacer ROS AI Kit 教程八、启动摄像头节点
- JetRacer ROS AI Kit 教程九、启动激光雷达节点
- JetRacer ROS AI Kit 主页
步骤1、查看机器人底盘节点话题
- SSH连接机器人打开终端,输入以下命令启动机器人底盘节点
- 【注意:机器人底盘节点不能重复启动,否则出错。如果之前的底盘节点没有关闭则不需要再次启动】
roslaunch jetracer jetracer.launch #启动机器人底盘节点
- 打开Ubuntu虚拟机终端,在终端输入以下命令,查看底盘节点话题
rostopic list
- 运行代码后若出现下图所示内容,则说明多机通讯成功;若无法连接,则重新检查上面步骤中ip和hostname是否填错或者是否连接同一WiFi
- 其中:
- /cmd_vel 为机器人控制机器人运动速度话题
- /imu 为机器人IMU话题
- /motor/* 四个话题表示左右电机的实际编码速度和设置速度
- /odom 为机器人编码里程计
- /odom_combined 为机器人融合里程计,由编码里程计融合IMU数据所得。
步骤2、通过rqt-plot显示数据波形
- 可以在虚拟机终端中运行如下命令打开数据波形显示工具
rosrun rqt_plot rqt_plot
- 在/Topic中输入电机的话题,勾选右上角的autoscroll,点击+好添加话题即可显示当前电机的数据波形。
- 使用键盘或遥控手柄控制机器人运动可观察电机曲线的变化【特别是当电机运行出现问题时,您还可以查看波形判断异常】
- 上图中 /motor/lset 和/motor/rset 表示左右电机设置的编码速度,/motor/lvel 和/motor/rvel表示左右电机实际运行的编码速度。此编码速度表示一个周期内(20ms),编码器输出的脉冲数
- 如果数据波形显示速度过快可以点击图标设置X轴和Y轴的范围,如下图设置X轴的范围即可
步骤3、通过rqt-reconfigura调节PID参数
- 若电机显示波形不够理想,响应速度慢等可以通过修改PID的值来调节电机运行效果,运行如下命令启动动态参数调节图形界面,选择jetracer.
rosrun rqt_reconfigure rqt_reconfigure
- 可结合目标和实际波形调节PID参数实现更好的运行效果。电机速度采用增量式PID调节,优先调节Ki,再调节Kp,最后调节Kd,或者Kd设置为0
- 动态参数调节只会影响此次的运行效果,参数不会保存到参数文件中,不影响下次启动。如果自行调节的PID参数效果更好,可以将参数保存到配置文件中,修改jetracer/cfg/jetracer.cfg文件保存参数
【注意:非专业人士不要随意调节PID参数,否则可能会因为不合理参数导致机器人运动不正常,出现奇怪现象,甚至可能会烧坏驱动电路】
步骤4、通过RVIZ图像工具查看机器人里程计信息
- 在虚拟机中输入以下命令 , 启动RVIZ图形工具
rviz
- 按下图所示,添加TF组件
- 点击Fixed Frame 选择odem,既可以看到三个TF坐标,控制小车向前移动一段距离,可以看到base_footprint和base_imu_link坐标也同时移动。
- odom可以理解为机器人原来的位置,odom为原点,base_footprint为机器人坐标,base_imu_link为机器人IMU坐标。
- 注意:如果base_footprint坐标不断旋转,则是因为底盘主控启动时不是在平面静止状态,IMU校准数据不准确导致的。将小车放到平面上不动,然后按reset按键重启底盘主控一会再运行节点程序即可。
- Fixed Frame 选择odom,既可以看到三个TF坐标,控制小车向前移动一段距离【控制小车移动的前提是启动运动话题界面,你可以参考“步骤4”重新打开一个终端并运行控制话题】,可以看到base_footprint和base_imu_link坐标也同时移动。
步骤5、通过TF树查看坐标关系
- 在虚拟机中重新打开一个终端,运行如下命令可以通过TF树查看这三个TF坐标的关系。
rosrun rqt_tf_tree rqt_tf_tree
- odom->base_footprint坐标变换由/robot_pose_ekf节点发布,通过融合编码里程计和IMU数据得到此TF变换;base_footprint->base_imu_link为/base_footprint_to_imu节点发布的静态坐标变换
步骤6、通过RVIZ图像工具查看机器人IMU信息
- 在虚拟机中运行 rviz 命令启动RVIZ图形工具,Fixed Frame 选择base_footprint,并添加 rviz_plugin_plugin/Imu组件
rviz
- Imu Topic选择/imu即可以查看IMU信息。勾选Enable box显示箱子,勾选Enable axes显示坐标,勾选Enable acceleration显示箭头,Acc.vector scale设置为0.2将箭头改小一点。
- 旋转小车箱子也跟着倾斜,将小车切斜一下可以发现箭头也会跟追倾斜。
- 注意:扩展板微控制程序启动时,LED灯常量,此时IMU处于校准状态,机器人需要处于水平静止状态。否则导致IMU数据不准确,导致小车坐标处于一直旋转状态。将小车放平静止,关闭底盘节点后,按RESET重新启动扩展板程序,等LED闪烁再次启动底盘节点。