使用ROS的demo
启动前检查
请检查确保完成以下事项:
- 已经安装完成ROS-SDK,如果是第一次安装SDK,建议在 首次安装后重启 一次
- 已经通过了编译并没有报错
- 已经完成工作空间的source
-
如果使用CAN-COM HUB,请确定正确连接CAN总线,确定已经能够搜索到设备
- 在终端使用lsusb查询可看到以下设备
-
确保遥控器已经关闭;或者打开时,拨到的是 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后会得到以下终端消息

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为旋转角速度。