Repository Summary
Description | 16th National College Student’s Intelligent Car Competition Code 第十六届智能汽车竞赛讯飞智慧餐厅代码 |
Checkout URI | https://github.com/ht-hlf/car_competition.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2023-01-27 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
Name | Version |
---|---|
aruco | 2.1.1 |
aruco_msgs | 2.1.1 |
aruco_ros | 2.1.1 |
fdilink_ahrs | 0.0.1 |
game_start | 0.0.0 |
eigen_conversions | 1.12.0 |
geometry | 1.12.0 |
kdl_conversions | 1.12.0 |
tf | 1.12.0 |
tf_conversions | 1.12.0 |
geometry2 | 0.6.5 |
test_tf2 | 0.6.5 |
tf2 | 0.6.5 |
tf2_bullet | 0.6.5 |
tf2_eigen | 0.6.5 |
tf2_geometry_msgs | 0.6.5 |
tf2_kdl | 0.6.5 |
tf2_msgs | 0.6.5 |
tf2_py | 0.6.5 |
tf2_ros | 0.6.5 |
tf2_sensor_msgs | 0.6.5 |
tf2_tools | 0.6.5 |
ht_cv_bridge | 0.0.0 |
ht_image | 0.0.0 |
ht_laser | 0.0.0 |
ht_msg | 0.0.0 |
ht_yolov5_1 | 0.0.0 |
huanyu_joy | 0.0.0 |
robot_pose_ekf | 1.14.5 |
robot_vision | 0.0.0 |
ucar_cam | 0.0.0 |
ucar_controller | 1.1.0 |
ucar_map | 0.0.0 |
ucar_nav | 0.0.0 |
xf_mic_asr_offline | 0.0.0 |
xf_mic_tts_offline | 0.0.0 |
ydlidar | 1.3.1 |
yocs_cmd_vel_mux | 0.12.1 |
yocs_velocity_smoother | 0.12.1 |
README
智能驾驶小车ros示例代码介绍
获奖
指引:
简介
该示例代码包含整个ROS的workspace。用catkin_make
编译即可使用。
建议放在 ~/
目录下。
前提条件:本工作空间需要已经完成ROS的安装、OpenCV的编译。
以在 ~/
为例:
cd ~/ucar_ws
catkin_make
文件结构
本workspace目录结构如下:
.
├── startup_scripts # 设备权限设施脚本,用于在`/etc/udev/rules.d/`中添加ucar.rules
├── ucar_controller # 智能驾驶小车的底盘控制ros包(mini版本集成了imu)
├── fdilink_ahrs # imu示例ros包(晓版本用imu需要单独调用本包)
├── ydlidar # 激光雷达示例ros包
├── ucar_map # 建图示例ros包
├── ucar_nav # 导航示例ros包
├── car_race # 智能车比赛示例代码包
├── xf_mic_asr_offline # 麦克风阵列示例ros包
├── geometry # tf2相关包
├── geometry2 # tf2相关包
└── CMakeLists.txt
-
startup_scripts
:文件夹存放了快速配置小车外设权限的脚本。两个脚本分别对应两个版本小车。 -
ucar_controller
:是控制小车底盘的驱动包,实现了对4个电机、彩色LED、IMU的控制。 -
ydlidar
:激光雷达的驱动包。 -
ucar_map
:基于Cartographer算法的SLAM建图的配置示例ros包。 -
ucar_nav
:基于ROS move_base的导航配置示例ros包。 -
ucar_race
:智能车竞赛参考代码。 -
xf_mic_asr_offline
:麦克风阵列驱动包。 -
geometry
与geometry2
tf2相关包。 具体使用见下文以及相应包中的README.md
文件。没有包含的usb摄像头可以参考usb_cam包来使用。下面提到的
startup_scripts
已经将摄像头设备链接为/dev/ucar_video
。
各包说明
1. startup_scripts
initdev_mini.sh
与 initdev_xiao.sh
分别对应晓mini版本的智能驾驶小车和晓版本的智能驾驶小车。
cd ./ucar_ws/src/startup_scripts/
sudo chmod 777 ./initdev*.sh
sudo ./initdev_mini.sh # 对应晓mini版本,晓版本勿执行这句
sudo ./initdev_xiao.sh # 对应晓版本,晓mini版本勿执行这句
sudo reboot # 可选,最好完成一次重启
这个脚本完成了/etc/udev/rules.d/ucar.rules
文件的创建与udev服务重启。
以及,在~/.bashrc
中添加了对ucar_ws
的ROS环境的source。
2. ucar_controller
2.1 简介
ucar_controller
作为与下位机mcu通讯的ROS包实现了电机控制、灯光控制、mcu板载imu数据读取等功能。我们可以通过发布/cmd_vel(geometry_msgs/Twist)
速度控制话题,指定xy方向的平移速度以及yaw角的旋转速度来控制小车运动。同时发布里程计话题/odom(nav_msgs/Odometry)
实时发布小车里程计记录的速度、位置。其他功能阅读ucar_controller
包中的readme.md
文档。
2.2 所需安装依赖
sudo apt update
sudo apt install ros-melodic-serial libeigen3-dev
sudo pip3 uninstall em
sudo pip3 install empy -i https://pypi.tuna.tsinghua.edu.cn/simple
编译:
cd ~/ROS/ucar_ws
catkin_make
2.3 简单验证
1、启动节点:
roslaunch ucar_controller base_driver.launch
2、发布话题控制:
base_driver
节点订阅/cmd_vel
话题,msg类型为geometry_msgs/Twist
。
我们可以通过发布/cmd_vel
话题来控制小车移动,比如:
Ctrl + Alt + T重新开启一个终端。
用rostopic
工具发布话题。(注意用Tab键自动补全来填写geometry_msgs/Twist
数据,不然手动输入容易出错)
```bash rostopic pub -r 20 /cmd_vel geometry_msgs/Twist “linear: x: 0.0 y: 0.0 z: 0.0 angular: x: 0.0
File truncated at 100 lines see the full file