car_competition repository

car_competition repository

car_competition repository

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
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

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示例代码介绍

获奖

image

指引:

yolov5在ros上的部署

基于单线激光的人物模型位姿计算

ht_code

ht_detect_control

ht_msg

简介

该示例代码包含整个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

  1. startup_scripts:文件夹存放了快速配置小车外设权限的脚本。两个脚本分别对应两个版本小车。
  2. ucar_controller:是控制小车底盘的驱动包,实现了对4个电机、彩色LED、IMU的控制。
  3. ydlidar:激光雷达的驱动包。
  4. ucar_map:基于Cartographer算法的SLAM建图的配置示例ros包。
  5. ucar_nav:基于ROS move_base的导航配置示例ros包。
  6. ucar_race:智能车竞赛参考代码。
  7. xf_mic_asr_offline:麦克风阵列驱动包。
  8. geometrygeometry2 tf2相关包。 具体使用见下文以及相应包中的README.md文件。

    没有包含的usb摄像头可以参考usb_cam包来使用。下面提到的startup_scripts已经将摄像头设备链接为/dev/ucar_video

各包说明

1. startup_scripts

initdev_mini.shinitdev_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数据,不然手动输入容易出错)

rostopic pub -r 20 /cmd_vel geometry_msgs/Twist "linear:
  x: 0.0
  y: 0.0
  z: 0.0
angular: 
  x: 0.0
  y: 0.0
  z: 1.0"

输入指令后小车会持续逆时针自转。

3.1 简介

fdilink_ahrs作为与晓版本小车nano板载imu通讯的ROS包实现了imu数据读取发布的功能。我们可以通过订阅/imu(sensor_msgs/Imu)话题来获取imu数据。详细功能阅读fdilink_ahrs包中的README.md文档。

3.2 启动

完成编译后使用如下指令启动该节点:

roslaunch fdilink_ahrs ahrs_driver.launch

4. ydlidar

4.1 简介

激光雷达的驱动包,直接编译即可使用。默认发布/scan话题的数据。对应的数据类型为:sensor_msgs/LaserScan

4.2 启动与配置

完成编译后使用如下指令启动该节点:

roslaunch ydlidar ydlidar.launch

对应的launch文件保存在:~/ucar_ws/src/ydlidar/launch/ydlidar.launch。 修改ydlidar.launch文件中的参数可以对topic_nameframe_id等参数进行修改。

5. ucar_nav

5.1 简介

ucar_nav包基于navigation是包集,完成了基于move_base的导航配置,供参考使用。

5.2 安装

新打开一个终端,输入以下命令安装

sudo apt-get install ros-melodic-navigation*

5.3 使用

打开新的终端,运行下面命令

roslaunch ucar_nav ucar_navigation.launch

ucar_nav/launch/文件夹中的navigation.launch为导航的启动文件。ucar_nav/launch/config/文件夹主要用于存放导航所需要的yaml文件,其中ucar_nav/launch/config/amcl/中是用于定位的参数文件,ucar_nav/launch/config/move_base/是存放着路径规划和感知地图的参数文件。

编译过程中可能出现的错误

1、No module named ‘em’ 解决方法:打开一个新的终端执行下面的命令

sudo pip3 uninstall em
sudo pip3 install empy -i https://pypi.tuna.tsinghua.edu.cn/simple

6. ucar_map

6.1 简介

SLAM建图示例包,本包配置了Google的Cartographer的2D建图启动文件。

6.2 cartographer安装

sudo apt-get install ros-melodic-cartographer
sudo apt-get install ros-melodic-cartographer-ros

6.2 启动建图

6.2.1 分步启动建图

打开3个新的终端,运行下面命令:

roslaunch ucar_controller base_driver.launch
roslaunch ydlidar ydlidar.launch
roslaunch ucar_map cartographer_start.launch

6.2.2 一键启动建图
roslaunch ucar_map ucar_mapping.launch

ucar_mapping.launch中包含了分布启动建图中的3个launch文件

说明: 上文已经介绍了 base_driver.launch是启动小车底盘控制,ydlidar.launch是启动雷达 cartographer_start.launch是单独启动cartographer_ros。

7. xf_mic_asr_offline

7.1 简介

麦克风阵列ROS驱动示例包,本包基于ROS实现了上传音频、获取唤醒角度、设置灯光、设置主麦设置唤醒词等功能。 详细内容阅读:ucar_ws/src/xf_mic_asr_offline/doc/麦克风阵列使用说明v1.9.x.pdf

修改记录

20210323:新增fdilink_ahrs软件包的简介 20210309:第一版 20210304:初次编写

CONTRIBUTING

No CONTRIBUTING.md found.

car_competition repository

car_competition repository

car_competition repository

car_competition repository

car_competition repository

car_competition repository

car_competition repository

car_competition repository

car_competition repository

car_competition repository

car_competition repository

car_competition repository

car_competition repository

car_competition repository

car_competition repository