ROS 机器人工程师30 天突击学习计划(超详细・日更版)第一天 Linux

第 1 周:Linux + C++/Python + ROS 基础(Day1~7)

Day1:Linux 终端命令(ROS 90% 操作都靠它)

上午 9:00–11:30 | 必背命令

查看日志 / 进程bash运行

top # 看CPU htop # 更直观 dmesg # 系统日志 

文件操作bash运行

ls -la # 看所有文件 cd # 进入目录 pwd # 显示当前路径 mkdir -p # 递归创建文件夹 rm -rf # 删除(谨慎) cp -r # 复制文件夹 mv # 移动/重命名 

下午 14:00–17:00 | 权限 + 包管理

bash

运行

sudo chmod 777 file sudo chown -R user:user folder sudo apt update sudo apt install xxx 

晚上 19:00–20:30 | 练习

  • 建一个 ros_ws/src 目录,来回复制删除验收:不看笔记能敲出 15 条常用命令面试点:Linux 在 ROS 里用来干什么?(启动、编译、调试、部署)

什么?(启动、编译、调试、部署)

1. 建立 ros_ws/src 目录并完成复制、删除、验收操作
在终端里操作(假设你用的是 Ubuntu + ROS Noetic/Kinetic/Melodic 等):
bash

# 1. 创建 ROS 工作空间目录结构
mkdir -p ~/ros_ws/src

# 2. 进入 src 目录(此时为空)
cd  ~/ros_ws/src

# 3. 创建一个示例功能包用于测试(假设用 catkin_create_pkg)
#    这里用 rospy 和 std_msgs 作为依赖示例
catkin_create_pkg hello_ros rospy std_msgs

# 4. 回到工作空间根目录
cd  ~/ros_ws

# 5. 编译工作空间(第一次编译会生成 build 和 devel)
catkin_make

# 6. 复制一份 src 目录做备份(验收用)
cp   -r src src_backup

# 7. 查看备份是否成功
ls -l

# 8. 删除刚创建的备份(验收删除)
rm  -rf src_backup

# 9. 确认删除成功
ls   -l

# 10. 验收:确认 src 里还有 hello_ros 包
ls src
这样就完成了 创建 → 复制 → 删除 → 验收 的流程。
2. 不看笔记能敲出的 15 条常用 ROS 命令(面试常考)
下面列出 15 条高频 ROS 命令(以 ROS1 为例,ROS2 略有差异):
1. roscore — 启动 ROS Master、参数服务器、rosout 节点(必须先运行) 13
2. catkin_create_pkg <pkg_name> [dependencies] — 创建功能包 10
3. catkin_make — 编译工作空间(在 workspace 根目录执行) 10
4. source devel/setup.bash — 设置当前终端的环境变量(使能工作空间) 11
5. rospack find <pkg_name> — 查找功能包路径 22
6. roscd <pkg_name> — 切换到功能包目录 15
7. rosls <pkg_name> — 列出功能包里的文件 15
8. rosrun <pkg_name> <executable> — 运行功能包中的节点 22
9. roslaunch <pkg_name> <file.launch> — 启动 launch 文件(可一次启动多个节点) 10
10. rosnode list — 列出当前运行的节点 21
11. rosnode info <node_name> — 查看节点信息(话题、服务、参数) 13
12. rostopic list — 列出当前活跃的话题 9
13. rostopic echo <topic_name> — 打印话题消息内容 9
14. rostopic pub <topic_name> <msg_type> <args> — 发布话题消息 9
15. rosparam list — 列出参数服务器上的参数 9
3. Linux 在 ROS 里用来干什么?(启动、编译、调试、部署)
Linux 是 ROS 的主要运行平台,在 ROS 的启动、编译、调试、部署各环节都扮演核心角色:
1. 启动
◦ ROS 节点本质是 Linux 下的进程,roscore、rosrun、roslaunch 都是在 Linux Shell 中执行的命令。 9
◦ roslaunch 会调用 Python 脚本解析 XML 并启动多个 Linux 进程(节点)。 26
2. 编译
◦ ROS 使用 catkin(基于 CMake)构建系统,编译过程依赖 Linux 下的 GCC/G++ 编译器、make 工具。
◦ catkin_make 或 catkin build 在 Linux 终端执行,生成可执行文件放在 devel/lib/<pkg>/ 或 install/ 目录。
3. 调试
◦ 常用 Linux 命令配合 ROS 工具调试:rosnode、rostopic、rosparam、rqt_graph、rqt_console、gdb(C++ 节点调试)、valgrind(内存检查)。 10
◦ 利用 Linux 的进程管理(ps, kill, top)查看和控制 ROS 节点。
4. 部署
◦ 机器人实际运行时通常在 Linux 系统(如 Ubuntu)上,将编译好的工作空间 install 或 devel 目录部署到目标机。
◦ 通过 Linux 的 shell 脚本或 systemd 服务实现开机自启动 ROS 节点(如 roslaunch 在 .bashrc 或启动脚本中自动运行)。
一句话总结:
Linux 为 ROS 提供了进程管理、编译链、调试工具和运行环境,是 ROS 开发、测试、部署的基石,所有启动、编译、调试、部署操作都依赖 Linux 的 Shell 环境与系统工具链。

Read more

双剑破天门:攻防世界Web题解之独孤九剑心法(九)

双剑破天门:攻防世界Web题解之独孤九剑心法(九)

免责声明:用户因使用公众号内容而产生的任何行为和后果,由用户自行承担责任。本公众号不承担因用户误解、不当使用等导致的法律责任 **本文以攻防世界部分题为例进行演示,后续会对攻防世界大部分的web题目进行演示,如果你感兴趣请关注** 目录 一:Supersqli 二:Warmup 三:总结 1.supersqli 2.Warmup 一:Supersqli 打开如下所示,初步筛查这应该是一道SQL注入题 这确实是一道SQL注入 1’ or 1=1 # 那接下来就是查询字段数 字段数为2 1’ order by 2 # 查询数据库 正常的查询发现不行,被过滤了 但是没有过滤分号那就可以堆叠注入联合show 1’;show tables ;# 成功查询到一个特殊的表 1';show columns from `1919810931114514`;# 查询发现此表含flag但select被过滤如何查询flag 利用handler代替select

【Dify】使用 python 调用 Dify 的 API 服务,查看“知识检索”返回内容,用于前端溯源展示

【Dify】使用 python 调用 Dify 的 API 服务,查看“知识检索”返回内容,用于前端溯源展示

本文介绍了如何使用Dify HTTP API实现聊天问答功能,支持文本和图文交互。主要包含三个核心接口:上传文件获取ID、发送聊天消息(可携带图片)和删除会话。 脚本提供了极简封装类DifyChat,包含安全响应解析和可选会话管理功能。使用时需配置API地址、密钥和用户标识,支持纯文本问答和图文问答两种模式,并详细说明了流式输出、多用户适配等扩展场景的实现方法。 参考链接:对接Dify的api接口 上传文件、发起对话、删除对话 一、Dify 聊天示例脚本说明 本脚本演示了如何通过 Dify HTTP API 进行聊天问答,并可选携带图片。核心流程: 1. 上传文件(可选) * 调用 /v1/files/upload 上传本地图片,得到 upload_file_id。 * 只有在需要图文问答时才上传;纯文本时可跳过。 2. 发送对话消息 * 调用 /v1/chat-messages,

【测试理论与实践】(十)Web 项目自动化测试实战:从 0 到 1 搭建博客系统 UI 自动化框架

【测试理论与实践】(十)Web 项目自动化测试实战:从 0 到 1 搭建博客系统 UI 自动化框架

目录 前言 一、项目背景与测试规划:先明确 "测什么" 和 "怎么测" 1.1 项目介绍 1.2 测试目标 1.3 测试范围与用例设计 编辑 二、环境搭建:3 步搞定自动化测试前置准备 2.1 安装核心依赖包 2.2 浏览器配置 2.3 项目目录结构设计 三、核心模块开发:封装公共工具,提高代码复用性 3.1 驱动管理与截图工具封装(common/Utils.py) 3.2 代码说明与优化点 四、测试用例开发: