跳转到主要内容

使用ROS的demo

启动前检查

!!! note提示 请先掌握 ROS 的基本知识。可以参考 ROS1教程 以及 ROS2教程,了解对 ROS 系统的常见约定。

请检查确保完成以下事项:

  1. 已经安装完成ROS-SDK,如果是第一次安装SDK,建议在 首次安装后重启 一次

  2. 已经通过了编译并没有报错

  3. 已经完成工作空间的source

  4. 如果使用CAN-COM HUB,请确定正确连接CAN总线,确定已经能够搜索到设备

    • 在终端使用lsusb查询可看到以下设备
  5. 确保遥控器已经关闭;或者打开时,拨到的是 CAN 模式

    关于遥控器与模式,请参阅产品用户手册中关于遥控器的部。


底盘类设备

!!! warning 注意, 首次尝试使用软件控制机器人时,请确保机器人活动范围内没有其他障碍,或将机器人架起。

底盘的测试demo有以下两个:

* demo_basic_ctrl.launch
* demo_key_ctrl.launch

demo_basic_ctrl.launch是标准的启动文件,可以配套自动驾驶直接使用,通过使用 /cmd_vel 话题来控制机器人的移动。

demo_key_ctrl.launch是支持键盘控制的启动文件,使用 turtle_teleop_key 来利用键盘控制机器人。如果你还没有看过 ROS 的 turtlesim 教程,请先查看 turtlesim 教程。

!!! note 注意并不是使用方向键控制移动,请查看终端打印的使用方式提示,按下提示中的前进按钮。

成功启动launch后会得到以下终端消息

startup-successstartup.png

launch文件中参数设置和通讯msg请查阅src/drivers/xpkg_vehicle/README.md文件,以下解释几个关键参数:

  • calc_speed是设置里程计计算方式,true为用速度计算,false为用电机码盘值计算,建议采用默认false设置
  • mode_can_lock是CAN模式锁定设置,true为强制CAN模式,如果用遥控器切换到其他模式会警告并等待恢复,设置false则由用户选择控制模式

!!!note 如果出现底盘无法控制,可能是mode_can_lock设置false,并且切换到了其他模式

  • rate_x是输入速度的倍率控制,1为全速,在测试时建议先设置为0.2以下

成功启动launch包后可以通过rostopic list查看ROS话题,以下为几个关键话题:

  • 底盘节点向话题/odom发送消息类型为nav_msgs/Odometry。此消息表示底盘里程计信息,包含底盘当前位姿信息以及线速度角速度信息。
  • 底盘节点向话题/tf发送消息类型为tf2_msgs/TFMessage,包含底盘tf变换信息,需要在launch参数中启动。
  • 底盘节点从话题/cmd_vel订阅消息类型为geometry_msgs/Twist。底盘接收到该消息后进行移动,其中linear.x/linear.y为线速度,angular.z为旋转角速度。