Skip to content

cghggchg765-create/robot-projects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

足式机器人挑战组省赛赛题 - 项目说明文档

项目概述

本项目包含足式机器人挑战组省赛的所有题目代码,涵盖ROS2编程、Gazebo仿真、运动学控制和OpenCV图像处理等内容。

作者: rosuser
日期: 2025.05
ROS版本: ROS2 Humble
系统环境: Ubuntu 22.04 (WSL2)


项目结构

F:\deskop\新建文件夹 (12)/
├── WSL_Ubuntu/                    # WSL Ubuntu虚拟磁盘
├── ros_ws/                        # ROS2工作空间
│   └── src/
│       └── robot_challenge/       # ROS2功能包
│           ├── msg/               # 自定义消息
│           │   ├── FloatData.msg
│           │   └── TimeData.msg
│           ├── srv/               # 自定义服务
│           │   └── CompareInt.srv
│           ├── scripts/           # Python脚本
│           │   ├── topic_publisher.py      # 题目1-① 发布节点
│           │   ├── topic_subscriber.py     # 题目1-① 订阅节点
│           │   ├── service_server.py       # 题目1-② 服务端
│           │   ├── service_client.py       # 题目1-② 客户端
│           │   ├── time_publisher.py       # 题目2 时间发布
│           │   ├── time_subscriber.py      # 题目2 时间订阅
│           │   ├── squat_motion.py         # 题目4-容易 蹲起运动
│           │   └── pitch_motion.py         # 题目4-困难 俯仰运动
│           ├── launch/            # Launch文件
│           │   ├── gazebo_room.launch.py
│           │   └── rviz_display.launch.py
│           ├── worlds/            # Gazebo世界文件
│           │   └── closed_room.world
│           ├── urdf/              # 机器人模型
│           │   └── robot_dog.urdf
│           ├── rviz/              # RViz配置
│           │   └── robot_dog.rviz
│           ├── CMakeLists.txt
│           └── package.xml
├── opencv_projects/               # OpenCV项目
│   ├── shape_recognition/         # 题目3 图形识别
│   │   └── shape_recognition.py
│   ├── qr_code_recognition/       # 题目4 QR码识别
│   │   └── qr_code_recognition.py
│   └── sign_recognition/          # 识别算法题
│       └── sign_recognition.py
└── images/                        # 赛题图片资源

环境配置

1. 进入WSL Ubuntu环境

wsl -d Ubuntu-22.04

2. 编译ROS2工作空间

cd /mnt/f/deskop/新建文件夹\ \(12\)/ros_ws
colcon build --symlink-install
source install/setup.bash

3. 安装OpenCV依赖(用于OpenCV题目)

pip install opencv-python numpy

题目运行说明

题目1-① 话题通讯题(10分)

功能: 发布节点接收键盘输入的浮点型数据并发布,订阅节点接收数据取整后打印。

运行步骤:

# 终端1 - 启动订阅节点
ros2 run robot_challenge topic_subscriber

# 终端2 - 启动发布节点
ros2 run robot_challenge topic_publisher

测试: 在发布节点终端输入浮点数,如 3.14,订阅节点将输出 收到原始数据: 3.14, 取整后: 3


题目1-② 服务通讯题(10分)

功能: 服务端接收两个整数请求,比较大小后返回结果。

运行步骤:

# 终端1 - 启动服务端
ros2 run robot_challenge service_server

# 终端2 - 启动客户端
ros2 run robot_challenge service_client

测试: 在客户端输入两个整数,如 53,将返回 5 > 3 (a较大)


题目2 跨机器通信题(15分)

功能: 两台电脑在同一局域网下,计算机A发布系统时间,计算机B接收并打印。

运行步骤:

计算机A(发布端):

export ROS_DOMAIN_ID=0
export ROS_LOCALHOST_ONLY=0
ros2 run robot_challenge time_publisher

计算机B(订阅端):

export ROS_DOMAIN_ID=0
export ROS_LOCALHOST_ONLY=0
ros2 run robot_challenge time_subscriber

注意: 两台电脑的 ROS_DOMAIN_ID 必须相同。


题目3 Gazebo仿真题(15分)

功能: 在Gazebo中启动机器狗模型,构建封闭房间仿真场景。

运行步骤:

ros2 launch robot_challenge gazebo_room.launch.py

注意: 需要图形界面支持,WSL2需要配置X11转发或使用WSLg。


题目4-容易 运动学蹲起题(10分)

功能: 实现机器狗沿z轴进行上下蹲起运动,四个足尖位置固定不动。

运行步骤:

# 终端1 - 启动RViz
ros2 launch robot_challenge rviz_display.launch.py

# 终端2 - 运行蹲起运动节点
ros2 run robot_challenge squat_motion

题目4-困难 运动学俯仰题(10分)

功能: 实现机器狗身体绕x轴做往复转动(俯仰运动),足尖位置不动。

运行步骤:

# 终端1 - 启动RViz
ros2 launch robot_challenge rviz_display.launch.py

# 终端2 - 运行俯仰运动节点
ros2 run robot_challenge pitch_motion

OpenCV题3 图形识别计数题(20分)

功能: 识别图片中圆柱体和长方体的颜色和数量。

运行步骤:

cd /mnt/f/deskop/新建文件夹\ \(12\)/opencv_projects/shape_recognition
python3 shape_recognition.py

注意: 需要将测试图片命名为 shapes.jpg 放在同一目录下。


OpenCV题4 QR码识别题(5分)

功能: 识别QR码并打印输出内容。

运行步骤:

cd /mnt/f/deskop/新建文件夹\ \(12\)/opencv_projects/qr_code_recognition
python3 qr_code_recognition.py

注意: 需要将QR码图片命名为 qr_code.png 放在同一目录下。


识别算法题 识别3种标志(15分)

功能: 识别图片中的交通标志(警告、禁止、指示标志)。

运行步骤:

cd /mnt/f/deskop/新建文件夹\ \(12\)/opencv_projects/sign_recognition
python3 sign_recognition.py

注意: 需要将标志图片命名为 signs.jpg 放在同一目录下。


登录信息

项目
WSL用户名 rosuser
WSL密码 ros123

常见问题

Q1: ROS2命令找不到?

确保在WSL Ubuntu环境中运行,并已source环境:

source /opt/ros/humble/setup.bash
source ~/ros_ws/install/setup.bash

Q2: Gazebo无法启动?

WSL2需要图形界面支持,确保已安装WSLg或配置X11转发。

Q3: 跨机器通信不工作?

  1. 确保两台电脑在同一局域网
  2. 检查防火墙设置
  3. 确保 ROS_DOMAIN_ID 相同
  4. 设置 ROS_LOCALHOST_ONLY=0

文件清单

题目 文件路径 分值
题目1-① ros_ws/src/robot_challenge/scripts/topic_*.py 10分
题目1-② ros_ws/src/robot_challenge/scripts/service_*.py 10分
题目2 ros_ws/src/robot_challenge/scripts/time_*.py 15分
题目3 ros_ws/src/robot_challenge/launch/gazebo_room.launch.py 15分
题目4-容易 ros_ws/src/robot_challenge/scripts/squat_motion.py 10分
题目4-困难 ros_ws/src/robot_challenge/scripts/pitch_motion.py 10分
OpenCV题3 opencv_projects/shape_recognition/ 20分
OpenCV题4 opencv_projects/qr_code_recognition/ 5分
识别算法题 opencv_projects/sign_recognition/ 15分

总分: 100分

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages