ROS 基础功能 
逐个体验单项功能 
驱动底盘及传感器 
TIANRACER 底盘(编码器+IMU)
shell
roslaunch tianracer_core tianracer_core.launch    # 单独驱动底盘
rostopic echo /tianracer/imu                      # 查看IMU数据
rostopic echo /tianracer/odom                     # 查看里程计数据激光雷达 
shell
roslaunch tianracer_bringup lidar.launch          # 单独驱动激光雷达
roslaunch tianracer_rviz view_lidar.launch        # 查看雷达数据- 单线雷达  
- 多线雷达,以 robosense RS16 为例(选配) 
注意
查看时话题需要对应

USB 摄像头 
shell
roslaunch tianracer_bringup usb_cam.launch        # 单独驱动相机
roslaunch tianracer_rviz view_image.launch        # 查看图像数据GPS(选配) 
shell
roslaunch tianracer_bringup gps.launch            # 单独驱动GPS
rostopic echo /tianracer/gps                      # 查看GPS数据深度相机(选配) 
shell
roslaunch tianracer_bringup rgbd_camera.launch      
roslaunch tianracer_rviz view_image.launch        # 查看图像数据注意
查看时话题需要对应

如何控制底盘运动 
DBUS 直接通信 
直接控制舵机和电机
遥控器遥控
TIANRACER 使用遥控器 DT7 进行控制,DT7 是一款工作于 2.4GHz 频段的无线电通讯设备,该遥控器仅能与 DR16 接收机搭配使用,该遥控器在开阔室外的最大控制范围可达 1000m,内置锂电池,最长工作时间可达到 12 个小时。

- 向右拨电源开关,开启遥控器。向左拨电源开关,关闭遥控器。
- 左侧拨码开关,扳上禁用遥控,使用 ROS 控制,扳中反之。
- 遥控器开启时有提示音,开启后电源指示灯绿灯长亮并伴随蜂鸣器提示音。
- 左手摇杆前进后退,右手摇杆转向,S1 模式控制设置
ROS Topic 通信 
运算平台通过串口与下位机进行通信
终端话题发布
Ackerman消息直接控制 
shell
rostopic pub /tianracer/ackermann_cmd ackermann_msgs/AckermannDrive "{steering_angle: 1.57, steering_angle_velocity: 0.0, speed: 0.1, acceleration: 0.0,  jerk: 0.0}" -r 10INFO
- -r这个数值最小为1, 如果希望速度控制平滑,该数据>=10
- 注意遥控器需要切换到禁用模式,否则车无法执行来自ROS通信链路中的控制信号
对于主要在二维空间(xoy 平面)内运动的平台,可以使用 ackermann_msgs/AckermannDrive 消息类型,可以通过
- speed 控制油门
- steering_angle 控制转向(弧度值)
Twist消息间接控制 
话题转换
shell
rosrun tianracer_navigation cmd_vel_to_ackermann_drive.py _twist_cmd_topic:=/tianracer/cmd_vel _ackermann_cmd_topic:=/tianracer/ackermann_cmdWARNING
- 对于Tianracer系列来说,原生可以使用 ackermann_msgs/AckermannDrive 消息类型,如果希望使用Twist消息进行控制,需要运行上面的命令进行话题转发,然后即可正常使用
- 注意遥控器需要切换到禁用模式,否则车无法执行来自ROS通信链路中的控制信号
shell
rostopic pub /tianracer/cmd_vel geometry_msgs/Twist "linear:
  x: 0.1
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.0"对于主要在二维空间(xoy 平面)内运动的平台,也可以使用 geometry_msgs/Twist 消息类型,可以通过
- linear.x 控制前后
- angular.z 控制旋转
提示
- 在使用键盘控制时,需要注意话题的对应问题,teleop_twist_keyboard.py默认话题为cmd_vel,在给 Tianracer 系列使用时需要映射为/tianracer/cmd_vel
- 话题重映射方法为 在终端中输入
bash
rosrun teleop_twist_keyboard teleop_twist_keyboard.py cmd_vel:=/tianracer/cmd_vel- 然后即可根据终端提示,使用键盘给出控制信号控制小车运动,如需退出,按下 Ctrl+C 退出程序。
rqt 发布
shell
rosrun rqt_publisher rqt_publisher