Skip to content

Commit 005c400

Browse files
committed
docs: first commit
0 parents  commit 005c400

File tree

23 files changed

+451
-0
lines changed

23 files changed

+451
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: update-task-progress after pull request merged
2+
3+
on:
4+
pull_request_target:
5+
types: [closed]
6+
branches:
7+
- main # 或者你希望触发CI的分支名称
8+
9+
jobs:
10+
build:
11+
if: github.event.pull_request.merged == true # 只有当pull request被合并时才执行CI
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: Checkout code
16+
uses: actions/checkout@v2
17+
18+
- name: Set up Python
19+
uses: actions/setup-python@v2
20+
with:
21+
python-version: '3.8' # 替换为你需要的Python版本
22+
23+
- name: Install dependencies
24+
run: |
25+
sudo apt install fonts-noto-cjk
26+
python -m pip install --upgrade pip
27+
pip install -r assets/requirements.txt # 如果你的项目有requirements.txt文件
28+
29+
- name: Run Python script
30+
run: |
31+
python assets/update-task-progress.py # 替换为你需要运行的Python脚本
32+
33+
- name: Commit changes and add changes
34+
run: |
35+
git config --global user.email "github-actions[bot]@users.noreply.github.com"
36+
git config --global user.name "github-actions[bot]"
37+
git add .
38+
git commit -m "Update task progress" -a
39+
40+
# - name: Push changes
41+
# run: |
42+
# git push
43+
# env:
44+
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
45+
# Push the changes
46+
- name: Push changes
47+
uses: ad-m/github-push-action@master
48+
with:
49+
github_token: ${{ secrets.GITHUB_TOKEN }}
50+
branch: main
51+
force: true
52+

README.md

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
<p align="center">
2+
<img width=50% src="assets/p1.png"/>
3+
</p>
4+
5+
<h1 align="center">欢迎报名 IRobot 战队算法组!</h1>
6+
7+
<div align="center">
8+
<a href="http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=2JehDBVI8BBWEfourtdRF60RpF1zjHOV&authKey=EvFODrPUWOLijVFji0AScdjeAl2JCO7ZtpbFKF14VjfpjFyHmIU3e%2FijA%2FvoBc2l&noverify=0&group_code=635535591">交流群</a>
9+
<span>&nbsp;&nbsp;|&nbsp;&nbsp;</span>
10+
<a href="https://space.bilibili.com/436391821/channel/collectiondetail?sid=1809229">2023培训</a>
11+
</br></br>
12+
</div>
13+
14+
谢谢你的报名!这里是我们 2025 赛季的招新文档,我们会在这里发布一些公告信息,部分入队考核也会在这里进行。
15+
16+
## 信息发布栏
17+
18+
**算法组 招新 qq 群:** 622101394
19+
20+
**实验室地址:** 南校区大学生活动中心 四楼 407 ***🤬马上就搬家了🤬 🫡过来帮我们搬家报学号加分***
21+
22+
**联系人:** 不用列出来了哦哦有事在群里公屏打出来就好私聊群主管理也行
23+
24+
<img width=50% src="assets/p2.jpg"/>
25+
26+
## 关于我们
27+
28+
我们是 IRobot 战队算法组,由对嵌入式编程、电子技术和控制理论感兴趣的同学组成。一个赛场上的机器人**需要拥有躯体、可以行动、会感知决策**,嵌入式组的责任就是搭建电路、编写控制程序,让机器人拥有行动能力。(**这里改一下**
29+
30+
日常工作主要围绕下面这几项技术开展:(**这里改一下**
31+
32+
- 单片机开发
33+
34+
- 嵌入式 Linux、ROS
35+
36+
- 控制算法、仿真
37+
38+
- 功率电子设计(电容)
39+
40+
- PCB 设计
41+
42+
在每个赛季的备赛过程中,我们会并行进行开发和研发两条线,既利用已经掌握的技术造出本赛季要上场的机器人,也学习探索新技术,不断进步迭代;
43+
44+
不管你选择帮助我们造车,还是做一些研究性的贡献,嵌入式组都会是一个绝佳的实践平台,提供你作为个人难以获得的资源。
45+
46+
## 入队考核(**这里改一下**
47+
48+
相信大家一定会在我们的团队里发挥才能,也会在这里结识志同道合的朋友!但为了确保你能胜任我们的工作,完成规则测评之后,还有几项考核任务需要完成;
49+
50+
如果觉得自己的知识有漏洞也不用担心,部分任务的文档里会包含一些参考资料,以便大家学习相关的知识点。希望大家发挥自学能力和信息检索能力,独立完成这些任务。如果遇到自己实在解决不了的问题,可以在群里提问交流。
51+
52+
### 考核进度跟踪(**这里改一下或者删掉**
53+
54+
[时间轴](https://w0ybodqyg7f.feishu.cn/share/base/view/shrcnuEAKBb1HkQ7SRoO7ExsDTQ)上标出了每一项任务的 deadline 和你的进度。信息随时更新,如果你顺利完成了一项任务,那么你的进度条会前进到这一项任务处。***大家按照要求,一个任务用一个文件夹或者一个文件,我是按照你名字文件夹下的目录数量来更新时间轴的***
55+
![alt](assets/task_progress.png)
56+
57+
**请大家务必按时完成任务,任务逾期即考核不通过。**
58+
59+
### 任务目录(**这里讨论完改一下**
60+
61+
- [任务零:C 语言基础+Git](tasks/0.prerequisites/README.md)
62+
63+
完成任务零之后,标志着你已经有了开始学习的基础;我们会开设一系列集体线下课,教会你使用我们队内的工作流进行 STM32 开发,**时间和地点在招新群里通知**
64+
65+
考核进度不受线下课影响,如果有能力,可以先行继续完成下面的任务。下面的任务可以乱序进行。
66+
67+
- [任务一:简单 PCB 绘制](tasks/1.pcb/README.md)
68+
69+
- [任务二:C++/CMake](tasks/2.cpp-buildsystem/README.md)
70+
71+
- ~~任务三:Linux 基本使用/Python/ROS2~~ _没有硬性要求必须现在就完成,但是很建议先学起来,这赛季的新方案技术验证一旦完成,ROS+Linux 的方案会取代 STM32。_
72+
73+
接下来的这些任务需要来实验室完成:
74+
75+
来之前先在[问卷](https://w0ybodqyg7f.feishu.cn/share/base/form/shrcnmOrLiNsDxQ9RQW10x1NaSf)里预约一下你要来的时间,或者在群里问问有没有队员有空,我们会抽人联系你接应一下,防止迷路。
76+
77+
- [任务四:焊接](tasks/4.solder/README.md)
78+
79+
- [任务五:底盘控制 - 驱动 CAN 总线电机/PID 控制器](tasks/5.chassis/README.md)
80+
81+
- [任务六:云台控制 - 姿态解算/PID 控制器](tasks/5.gimbal/README.md)
82+
83+
- [任务七:整车控制](tasks/6.vehicle/README.md)
84+
85+
- 任务八:认识裁判系统 - 真·整车控制
86+
87+
- 任务九:和机械组协作
88+
89+
在完成以上任务之后,你就是一名合格的嵌入式组队员了!进队之后,你就肩负着完成自己负责的任务的责任,尽快和大家熟络起来、尽快对 rm 的比赛规则和比赛生态建立理解、积极完成任务、放开手脚干。
90+
91+
92+
## 最后:
93+
94+
认真干活虽然重要,也祝你在实验室玩的开心!
95+
96+
![p3](assets/p3.jpg)

assets/p1.png

82.1 KB
Loading

assets/p2.jpg

107 KB
Loading

assets/p3.jpg

51.2 KB
Loading

assets/requirements.txt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
contourpy==1.1.1
2+
cycler==0.12.1
3+
fonttools==4.53.1
4+
importlib_resources==6.4.5
5+
kiwisolver==1.4.7
6+
matplotlib==3.7.5
7+
numpy==1.24.4
8+
packaging==24.1
9+
pillow==10.4.0
10+
pyparsing==3.1.4
11+
python-dateutil==2.9.0.post0
12+
six==1.16.0
13+
zipp==3.20.1

assets/task_progress.png

45.8 KB
Loading

assets/update-task-progress.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# This script is used to update the progress of a task in the database.
2+
3+
import matplotlib.pyplot as plt
4+
import matplotlib.font_manager as fm
5+
import os
6+
7+
# 设置字体
8+
font_path = '/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc'
9+
font_prop = fm.FontProperties(fname=font_path)
10+
11+
# font_path = '/System/Library/fonts/PingFang.ttc'
12+
# font_prop = fm.FontProperties(fname=font_path)
13+
14+
# 数据
15+
directory = 'submissions/'
16+
all_items = os.listdir(directory)
17+
members = [item for item in all_items if os.path.isdir(os.path.join(directory, item)) and item != 'README.md']
18+
task_counts = {}
19+
for member in members:
20+
folder_path = os.path.join(directory, member)
21+
items = os.listdir(folder_path)
22+
task_counts[member] = len(items)
23+
24+
for member, count in task_counts.items():
25+
print(f"{member}: {count}")
26+
27+
28+
# 设置图形大小
29+
plt.figure(figsize=(10, 6))
30+
31+
plt.barh(members, task_counts.values(), color='gold', label=f'已提交人数{len(members)}' )
32+
33+
# 显示图例
34+
plt.legend(loc="upper right", prop = font_prop)
35+
36+
# 设置标题和标签
37+
plt.title('任务轴', fontproperties = font_prop)
38+
plt.xlabel('任务数量', fontproperties = font_prop)
39+
40+
x_ticks = range(0, 9, 1)
41+
x_labels = [f'task{i-1}' for i in x_ticks]
42+
plt.xticks(x_ticks, x_labels, fontproperties = font_prop)
43+
44+
for label in plt.gca().get_xticklabels() + plt.gca().get_yticklabels():
45+
label.set_fontproperties(font_prop)
46+
47+
# 存储图表
48+
plt.savefig('assets/task_progress.png')

submissions/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
这里用来放提交的任务

tasks/0.prerequisites/README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# 任务零:C 语言基础+Git
2+
3+
## 📃 任务描述
4+
5+
在这个任务中,你需要编写一个最基本的 C 语言程序,并且使用 Git 进行简单的版本控制和团队协作。
6+
7+
开始做任务之前,先注册一个 GitHub 账号;
8+
9+
## 🎯 任务目标
10+
11+
使用 C 语言编写一个冒泡排序程序:用户输入几个数字,使用冒泡排序算法将输入的整数从小到大排序并且打印出来。
12+
13+
![](./assets/1.png)
14+
15+
在这个仓库的[`submission`目录](../../submissions/README.md)下建一个以你的名字命名的文件夹;把程序源代码放进去,并提交一个 Pull Request。
16+
17+
## 🔗 参考资料
18+
19+
- [C 语言教程 | 菜鸟教程](https://www.runoob.com/cprogramming/c-tutorial.html)
20+
21+
- [C 语言期末不挂科 | 补考 | 速成课 | 3 小时拿下期末](https://www.bilibili.com/video/BV1pE421N7en/)
22+
23+
- [【git、github 保姆级教程入门,工作和协作必备技术,github 提交 pr - pull request】](https://www.bilibili.com/video/BV1s3411g7PS/)

0 commit comments

Comments
 (0)