技术分享

🚀 Linux 与 ROS 基础实战课

开启你的机器人开发之旅

🎯 我们的挑战目标

  • 像极客一样操控 Linux 终端 💻
  • 玩转文件地图与权限魔法 📁
  • 掌握 ROS 核心指令,指挥机器人 🤖
  • 独立完成你的第一个 ROS 模拟挑战 🏆

👥 谁适合这门课?

  • 对机器人充满好奇的初高中生
  • 想要变身技术大牛的入门者
  • 第一次接触 Linux 的“萌新”

1️⃣ 文件与目录魔法 📁

1.1 我的“地图”在哪?(导航)

pwd                 # 【我在哪?】显示当前位置
ls                  # 【这有什么?】列出文件
ls -la              # 【火眼金睛】显示包括隐藏文件
cd Desktop          # 【瞬移】去桌面文件夹
cd ..               # 【退一步】返回上一层
cd ~                # 【回家】回主目录

1.2 变出文件与文件夹 (创建)

mkdir project       # 【盖房子】创建新文件夹
touch hello.txt     # 【点点点】创建空文件
cp file1 file2      # 【分身术】复制文件
mv file1 file2      # 【搬家】移动或改名
rm test.txt         # 【橡皮擦】删除文件
rm -rf folder       # 【终极毁灭】删除文件夹(极其危险!!)

⚠️ 警告:在 Linux 里没有“回收站”,rm -rf 用错可能会毁掉整个系统!

1️⃣ Linux 基础命令

2️⃣ 文件大揭秘 👁️🗨️

2.1 偷看文件内容

cat hint.txt        # 【一览无余】显示全部内容
head list.txt       # 【看个头】显示前10行
tail log.txt        # 【看个尾】显示最后10行
tail -f log.txt     # 【监控器】实时刷新,看日志变动
less file.txt       # 【翻书模式】上下翻页看大文件

2.2 文本编辑器:你的笔记本

nano file.txt       # 【极速上手】最简单的编辑器
vim file.txt        # 【大师之路】高手专用(需要学习按键)
gedit file.txt      # 【像记事本】打开图形窗口编辑

2.3 寻宝探险 (搜索)

find /home -name "*.txt"     # 【寻宝】按名字找文件
grep "秘密" hint.txt          # 【关键词锁死】找文中的话
grep -r "error" ./           # 【地毯式搜寻】递归查找目录
1️⃣ Linux 基础命令

3️⃣ 系统大管家 ⚙️

3.1 查看系统状态

uname -a            # 【自我介绍】查看系统版本
df -h               # 【硬盘空间】看看硬盘满没满
free -h             # 【体力值】看看内存够不够
top                 # 【热榜】实时看哪个进程最忙
htop                # 【高级版热榜】更漂亮的界面

3.2 终结捣蛋鬼 (进程管理)

ps aux              # 【列队清单】看所有在运行的程序
ps aux | grep ros   # 【精准打击】找出 ROS 相关程序
kill 1234           # 【强制下课】杀死 PID 为 1234 的程序
killall roscore     # 【一网打尽】结束所有同名程序
1️⃣ Linux 基础命令

4️⃣ 权限与连接 🔑

4.1 获得超级力量

chmod +x script.sh      # 【赋予能量】让程序变“可执行”
chmod 755 file          # 【调整权杖】设置具体权限
sudo command            # 【变身管理员】以 Super User 身份干活

4.2 网络穿梭

ip addr                 # 【查门牌号】看电脑的 IP 地址
ping 192.168.1.1        # 【喂?还在吗?】测网络连通性
ssh pi@192.168.1.10     # 【灵魂附身】远程登录其他机器人
🤖 ROS 核心指南

5️⃣ ROS 基础必杀技 🧭

5.1 ROS 大管家与运行器

roscore                 # 【启动大脑】所有节点通信都需要它
rosrun pkg_name node    # 【请出一位演员】运行指定的节点
roslaunch pkg name.launch # 【剧组统筹】一次性启动一堆节点

🎮 实战挑战:玩转小海龟 (Turtlesim)

第一关:召唤海龟战队 (启动)

我们需要打开 3 个终端窗口,观察它们之间的秘密:

  1. 终端 1:启动大脑
    roscore
    
  2. 终端 2:启动小海龟模拟器
    rosrun turtlesim turtlesim_node
    
  3. 终端 3:启动海龟遥控器
    rosrun turtlesim turtle_teleop_key
    

🎯 任务:点击“遥控器”终端,用方向键指挥海龟画一个五角星(或者乱动一下也行)!

第二关:查看演员名单 (Nodes)

在 ROS 的世界里,每个程序都叫一个“节点 (Node)”。

  1. 查看有哪些演员在场:

    rosnode list
    

    你应该能看到 /turtlesim/teleop_turtle

  2. 打探某位演员的底细:

    rosnode info /turtlesim
    

    这里能看到它都在谈论什么话题 (Topics)

第三关:透视“关系网” (rqt_graph)

想知道这些节点是怎么互相说话的吗?

开一个新终端输入:

rqt_graph

💡 小贴士:你会看到一条线从 teleop 连向 turtlesim。就像电线一样,遥控器的指令通过话题发给了海龟!

第四关:监听秘密频道 (Topics)

海龟的一举一动都会在“话题 (Topic)”通道里广播。

  1. 列出所有通话频道:
    rostopic list
    
  2. 实时“偷听指令”:
    rostopic echo /turtle1/cmd_vel
    
    当你按方向键时,看看屏幕上刷出的速度数据!

第五关:发射“魔法指令” (Pub)

如果不按键盘,我们能不能直接用命令让它动起来?当然可以!

在终端输入这段“咒语”(建议按 Tab 键自动补全):

rostopic pub -r 1 /turtle1/cmd_vel geometry_msgs/Twist "linear:
  x: 2.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 1.8"

🔄 效果-r 1 让它每秒发 1 次指令。海龟会开始疯狂转圈圈!按 Ctrl+C 停止“魔法”。

第六关:修改背景魔法 (Params)

我们可以通过“参数 (Parameter)”动态改变它的环境。

  1. 看看有哪些环境参数:
    rosparam list
    
  2. 改变背景色(试试变成深红色):
    rosparam set /turtlesim/background_b 50
    rosparam set /turtlesim/background_g 0
    rosparam set /turtlesim/background_r 150
    
  3. 刷新画面:
    rosservice call /clear
    

第七关:瞬间转移 (Services)

如果你想再变出一只海龟,或者把现有的送回家?

  1. 瞬移海龟:
    rosservice call /turtle1/teleport_absolute 5.0 5.0 0.0
    
  2. 召唤克隆体:
    rosservice call /spawn 3.0 3.0 0.0 "new_turtle"
    
    快看!(3,3) 的地方出现了一个新伙伴!
🤖 ROS 核心指南

6️⃣ 进阶操作:ROS 工作空间 🛠️

6.1 创建你的专属领地

在 ROS 里,所有的代码都要放在指定的工作空间 (Workspace) 里。

mkdir -p ~/catkin_ws/src        # 1. 盖好房子
cd ~/catkin_ws/src
catkin_init_workspace           # 2. 挂上牌匾
cd ~/catkin_ws
catkin_make                     # 3. 装修编译
source devel/setup.bash         # 4. 让电脑认识它

6.2 环境变量:让命令永久生效

每次打开新终端都要 source 太麻烦了?你可以把命令写进电脑的“备忘录”:

# 执行一次即可,以后开机自动生效
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
🤖 ROS 核心指南

7️⃣ 常用工具箱 🧰

7.1 RViz:机器人的 3D 眼镜

rviz                            # 启动可视化界面

在 RViz 里,你可以看到激光雷达、地图、甚至是虚拟的机器人身体

7.2 rosbag:时光倒流录像机

想把机器人的表现录下来回家研究?

  1. 开始录像(记录所有话题):
    rosbag record -a
    
  2. 停止并保存: Ctrl + C
  3. 重播视频(再现当时情景):
    rosbag play your_file_name.bag
    
💡 实用小知识

8️⃣ 终极生存技巧 ⚡

8.1 救命快捷键

  • Ctrl + C:中断正在运行的程序(最常用!)
  • Tab:自动补全(手敲命令太慢?按两下 Tab 试试)
  • ↑ / ↓:翻阅你以前敲过的命令
  • Ctrl + L:清空凌乱的屏幕

8.2 当程序“罢工”时...

  1. 找不到命令? 检查环境变量:echo $ROS_PACKAGE_PATH
  2. 节点连不上? 检查大脑还在吗:rostopic list
  3. 编译报错? 试试清理一下:catkin_make clean

📚 学习资源推荐

🔗 官方与在线资源

  • ROS 维基百科: wiki.ros.org
  • 古月居: 国内最火的机器人教程社区
  • 小鱼 ROS: 适合新手的活泼教程

🏆 练习建议

  1. 在家里的 Ubuntu 系统里成功玩通 Turtlesim 所有关卡
  2. 尝试给海龟起个不一样的名字
  3. 试着自己创建一个名为 hello_ros 的功能包
🏁 结语

🎉 祝贺你!

你已经掌握了 Linux 与 ROS 的入门密码。

机器人开发是一个充满惊喜的过程:

  • 哪怕是让它动一厘米,也是伟大的第一步 🐢
  • 犯错是学习的最佳时机,不要怕报错 ❌
  • 保持好奇,去创造属于你的机器人吧! 🤖
■ 勤加练习,你就是下一个工程师!