JetBot Orin ROS AI Kit 教程六、使用ROS图形工具查看节点话题

来自Waveshare Wiki
跳转至: 导航搜索

JetBot Orin ROS AI Kit 初级教程目录

步骤1、查看机器人底盘节点话题

  • SSH连接机器人打开终端,输入以下命令启动机器人底盘节点
  • 【注意:机器人底盘节点不能重复启动,否则出错。如果之前的底盘节点没有关闭则不需要再次启动】
roslaunch jetbot_pro jetbot.launch     #启动机器人底盘节点  
Jetbot image10.png
  • 打开Ubuntu虚拟机终端,在终端输入以下命令,查看底盘节点话题
rostopic list   
  • 运行代码后若出现下图所示内容,则说明多机通讯成功;若无法连接,则重新检查上面步骤中ip和hostname是否填错或者是否连接同一WiFi
Jetbot image11.png
  • 其中:
    • /cmd_vel 为机器人控制机器人运动速度话题
    • /imu 为机器人IMU话题
    • /motor/* 四个话题表示左右电机的实际编码速度和设置速度
    • /odom 为机器人编码里程计
    • /odom_combined 为机器人融合里程计,由编码里程计融合IMU数据所得。

步骤2、通过rqt-plot显示数据波形

  • 可以在虚拟机终端中运行如下命令打开数据波形显示工具
rosrun rqt_plot rqt_plot 
  • 在/Topic中输入电机的话题,点击+好添加话题即可显示当前电机的数据波形。
  • 使用键盘或遥控手柄控制机器人运动可观察电机曲线的变化【特别是当电机运行出现问题时,您还可以查看波形判断异常】
Jetbot image67.png
  • 上图中 /motor/lset 和/motor/rset 表示左右电机设置的编码速度,/motor/lvel 和/motor/rvel表示左右电机实际运行的编码速度。此编码速度表示一个周期内(20ms),编码器输出的脉冲数
  • 如果数据波形显示速度过快可以点击图标设置X轴和Y轴的范围,如下图设置X轴的范围即可
Jetbot image68.png

步骤3、通过rqt-reconfigura调节PID参数

  • 若电机显示波形不够理想,响应速度慢等可以通过修改PID的值来调节电机运行效果,运行如下命令启动动态参数调节图形界面
rosrun rqt_reconfigure rqt_reconfigure 
Jetbot image69.png
  • 可结合目标和实际波形调节PID参数实现更好的运行效果。电机速度采用增量式PID调节,优先调节Ki,再调节Kp,最后调节Kd,或者Kd设置为0
  • 动态参数调节只会影响此次的运行效果,参数不会保存到参数文件中,不影响下次启动。如果自行调节的PID参数效果更好,可以将参数保存到配置文件中,修改jetbot_pro/cfg/pid.cfg文件保存参数

【注意:非专业人士不要随意调节PID参数,否则可能会因为不合理参数导致机器人运动不正常,出现奇怪现象,甚至可能会烧坏驱动电路】

Jetbot image70.png

步骤4、通过RVIZ图像工具查看机器人里程计信息

  • 在虚拟机中输入以下命令 , 启动RVIZ图形工具
 rviz    
Jetbot image20.png
  • 按下图所示,添加TF组件
Jetbot image21.png
  • 点击Fixed Frame 选择odem,既可以看到三个TF坐标,控制小车向前移动一段距离,可以看到base_footprint和base_imu_link坐标也同时移动。
  • odom可以理解为机器人原来的位置,odom为原点,base_footprint为机器人坐标,base_imu_link为机器人IMU坐标。
  • 注意:如果base_footprint坐标不断旋转,则是因为底盘主控启动时不是在平面静止状态,IMU校准数据不准确导致的。将小车放到平面上不动,然后按reset按键重启底盘主控一会再运行节点程序即可。
  • Fixed Frame 选择odem,既可以看到三个TF坐标,控制小车向前移动一段距离【控制小车移动的前提是启动运动话题界面,你可以参考“步骤4”重新打开一个终端并运行控制话题】,可以看到base_footprint和base_imu_link坐标也同时移动。
Jetbot image22.png

步骤5、通过TF树查看坐标关系

  • 在虚拟机中重新打开一个终端,运行如下命令可以通过TF树查看这三个TF坐标的关系。
rosrun rqt_tf_tree rqt_tf_tree   
Jetbot image23.png
  • odem->base_footprint坐标变换由/robot_pose_ekf节点发布,通过融合编码里程计和IMU数据得到此TF变换;base_footprint->base_imu_link为/base_footprint_to_imu节点发布的静态坐标变换

步骤6、通过RVIZ图像工具查看机器人IMU信息

  • 在虚拟机中运行 rviz 命令启动RVIZ图形工具,并添加 rviz_plugin_tutorials/Imu组件
rviz  
JetRacer ROS 27.png
  • Imu Topic选择/imu即可以查看IMU信息。勾选Enable box显示箱子,勾选Enable axes显示坐标,勾选Enable acceleration显示箭头,Acc.vector scale设置为0.2将箭头改小一点。
  • 旋转小车箱子也跟着倾斜,将小车切斜一下可以发现箭头也会跟追倾斜。

JetRacer ROS 28.png

  • 注意:扩展板微控制程序启动时,LED灯常量,此时IMU处于校准状态,机器人需要处于水平静止状态。否则导致IMU数据不准确,导致小车坐标处于一直旋转状态。将小车放平静止,关闭底盘节点后,按RESET重新启动扩展板程序,等LED闪烁再次启动底盘节点。