使用ROS的demo
启动前检查
请检查确保完成以下事项:
-
已经安装完成ROS-SDK,如果是第一次安装SDK,建议在 首次安装后重启 一次
-
已经通过了编译并没有报错
-
已经完成工作空间的source
-
如果使用CAN-COM HUB,请确定正确连接CAN总线,确定已经能够搜索到设备
- 在终端使用lsusb查询可看到以下设备
-
确保遥控器已经关闭;或者打开时,拨到的是 CAN 模式
关于遥控器与模式,请参阅产品用户手册中关于遥控器的部。
底盘类设备
警告 注意, 首次尝试使用软件控制机器人时,请确保机器人活动范围内没有其他障碍,或将机器人架起。
底盘的测试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
教程。
提示 注意并不是使用方向键控制移动,请查看终端打印的使用方式提示,按下提示中的前进按钮。
成功启动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
为旋转角速度。