ROS云课基础篇-01-Linux-250529

article/2025/8/16 12:03:59

ROS云课基础篇收到了很多反馈,正面评价比例高,还有很多朋友反馈需要写更具体一点。 

ROS云课基础篇极简复习-C++、工具、导航、巡逻一次走完-CSDN博客 

于是,有了这篇以及之后的案例,案例均已经测试过8年,但没有在博客公开。

截止250529博客已经公开内容不足开发全部教程的3%,后续力争达到10%,以点带面。

自主探索最为关键。

博客仅供参考,其实看不看都无所谓的。

时间有限,写得稀巴烂,非常非常抱歉。



ROS Kinetic工作空间(catkin_ws)详细实验流程(基于Zsh)

一、实验目标

通过实践掌握ROS Kinetic工作空间的创建、编译、包管理及环境配置,结合Zsh特性与Bash脚本自动化备份,形成完整的ROS开发环境搭建能力。


二、实验环境

  • 操作系统:Ubuntu 16.04 LTS
  • ROS版本:ROS Kinetic Kame
  • Shell环境:Zsh(需替代默认Bash)
  • 工具catkin_makeoh-my-zsh(可选)、treesshaptsudo

三、实验步骤与结果

1. 安装并配置Zsh

1.1 安装Zsh
# 安装Zsh
sudo apt update
sudo apt install zsh -y# 验证安装
zsh --version

bash

# 安装Zsh
sudo apt update
sudo apt install zsh -y
# 验证安装
zsh --version

 

1.2 安装Oh-My-Zsh(可选,增强体验)
 

bash

# 通过curl安装Oh-My-Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# 或通过wget安装
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
1.3 设置Zsh为默认Shell
 

bash

# 修改默认Shell为Zsh
chsh -s $(which zsh)
# 重新登录或重启终端使配置生效

2. 创建并初始化ROS工作空间

2.1 创建工作空间目录结构
 

zsh

# 创建工作空间顶级目录
mkdir -p ~/catkin_ws/src
# 进入src目录并初始化工作空间
cd ~/catkin_ws/src
catkin_init_workspace
# 返回工作空间根目录
cd ~/catkin_ws
# 编译工作空间(生成build和devel目录)
catkin_make
2.2 验证工作空间结构
 

zsh

# 安装tree工具(若未安装)
sudo apt install tree -y
# 查看工作空间目录结构
tree -L 2

预期输出


~/catkin_ws
├── build
│ ├── CMakeCache.txt
│ ├── CMakeFiles/
│ └── Makefile
├── devel
│ ├── env.sh
│ ├── setup.zsh # 注意:Zsh下自动生成setup.zsh
│ └── lib/
└── src
├── CMakeLists.txt
└── (空或已有ROS包)

3. 创建ROS功能包

3.1 使用catkin_create_pkg创建包
 

zsh

# 进入src目录
cd ~/catkin_ws/src
# 创建名为my_package的包,依赖roscpp、rospy、std_msgs
catkin_create_pkg my_package roscpp rospy std_msgs
3.2 验证包结构
 

zsh

tree ~/catkin_ws/src/my_package

预期输出

 

~/catkin_ws/src/my_package
├── CMakeLists.txt
├── include/
│ └── my_package/
├── package.xml
└── src/

4. 编译工作空间

 

zsh

# 返回工作空间根目录并编译
cd ~/catkin_ws
catkin_make
# 刷新环境变量(临时生效)
source devel/setup.zsh # 使用setup.zsh而非setup.bash
# 永久生效(添加到.zshrc)
echo "source ~/catkin_ws/devel/setup.zsh" >> ~/.zshrc
source ~/.zshrc
4.1 验证环境变量
 

zsh

echo $ROS_PACKAGE_PATH

预期输出

 

/home/user/catkin_ws/src:/opt/ros/kinetic/share

5. 编写并运行ROS节点

5.1 创建Python节点
 

zsh

# 进入包的scripts目录
mkdir -p ~/catkin_ws/src/my_package/scripts
cd ~/catkin_ws/src/my_package/scripts
# 创建Python脚本
gedit talker.py &

脚本内容(同Bash版本):

 

python

#!/usr/bin/env python
import rospy
from std_msgs.msg import String
def talker():
pub = rospy.Publisher('chatter', String, queue_size=10)
rospy.init_node('talker', anonymous=True)
rate = rospy.Rate(10)
while not rospy.is_shutdown():
hello_str = "hello world %s" % rospy.get_time()
rospy.loginfo(hello_str)
pub.publish(hello_str)
rate.sleep()
if __name__ == '__main__':
try:
talker()
except rospy.ROSInterruptException:
pass
5.2 添加执行权限并运行
 

zsh

chmod +x talker.py
# 启动roscore
roscore &
# 在新终端中运行节点
rosrun my_package talker.py

6. 编写Zsh脚本自动化备份

6.1 创建备份脚本
 

zsh

# 进入scripts/backup目录
mkdir -p ~/catkin_ws/src/scripts/backup
cd ~/catkin_ws/src/scripts/backup
# 创建备份脚本
gedit backup_kinetic.zsh &

脚本内容(Zsh与Bash语法兼容):

 

zsh

#!/bin/zsh
# ROS Kinetic备份脚本
set -euo pipefail
ROS_WS_DIR="$HOME/catkin_ws"
BACKUP_DIR="/var/backups/ros_kinetic"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
mkdir -p "$BACKUP_DIR"
tar --exclude='./build' --exclude='./devel' -czf "$BACKUP_DIR/ros_kinetic_$TIMESTAMP.tar.gz" "$ROS_WS_DIR"
echo "ROS Kinetic工作空间已备份至:$BACKUP_DIR"
6.2 添加执行权限并测试
 

zsh

chmod +x backup_kinetic.zsh
./backup_kinetic.zsh

7. 配置.zshrc与进程管理

7.1 自定义.zshrc
 

zsh

gedit ~/.zshrc &

添加内容

 

zsh

# ROS Kinetic环境变量
source /opt/ros/kinetic/setup.zsh # 使用setup.zsh而非setup.bash
source ~/catkin_ws/devel/setup.zsh
# 自定义别名
alias cdw='cd ~/catkin_ws'
alias cds='cd ~/catkin_ws/src'
alias rosbackup='~/catkin_ws/src/scripts/backup/backup_kinetic.zsh'
# 修改命令提示符(Oh-My-Zsh主题可简化配置)
# 示例:使用agnoster主题(需安装Powerline字体)
ZSH_THEME="agnoster"
# 启用插件(如git、zsh-autosuggestions)
plugins=(git zsh-autosuggestions)
7.2 进程管理
# 查看ROS进程
ps aux | grep roscore  # 终止进程(假设PID为1234)
kill -9 1234

 zsh

 

# 查看ROS进程
ps aux | grep roscore
# 终止进程(假设PID为1234)
kill -9 1234

8. 使用SSH远程管理

8.1 配置SSH服务
 

zsh

sudo apt install openssh-server -y
sudo service ssh start
# 生成SSH密钥对
ssh-keygen -t rsa -b 4096
# 将公钥复制到远程服务器(假设IP为192.168.1.100)
ssh-copy-id -i ~/.ssh/id_rsa.pub user@192.168.1.100
# 测试SSH连接
ssh user@192.168.1.100

9. 软件包管理

9.1 安装ROS Kinetic软件包
 

zsh

sudo apt update
sudo apt install ros-kinetic-rviz ros-kinetic-turtlesim -y

四、实验总结

  1. Zsh环境配置
    • 安装并设置Zsh为默认Shell,可选安装Oh-My-Zsh增强体验。
    • ROS Kinetic自动生成setup.zsh,需在.zshrc中加载。
  2. 工作空间创建
    • 通过catkin_init_workspacecatkin_make完成初始化与编译。
  3. 包管理
    • 使用catkin_create_pkg创建功能包,并通过catkin_make编译。
  4. 节点开发
    • 编写Python节点并通过rosrun运行。
  5. 自动化备份
    • Zsh脚本结合tar命令实现ROS工作空间备份。
  6. 环境配置
    • 通过.zshrc自定义终端行为,简化开发流程。
  7. 远程管理
    • SSH密钥认证提升安全性。
  8. 软件包管理
    • apt统一管理ROS Kinetic依赖。

五、实验扩展

  1. Zsh插件推荐

    • zsh-autosuggestions:命令行自动补全。
    • zsh-syntax-highlighting:语法高亮。
  2. 定时备份

     

    zsh

    # 编辑crontab
    crontab -e
    # 添加每日凌晨2点备份任务
    0 2 * * * /home/user/catkin_ws/src/scripts/backup/backup_kinetic.zsh >> /var/log/ros_backup.log 2>&1
  3. 多节点通信
    结合rostopicrosservice实现节点间通信。

  4. 依赖解析
    使用rosdep自动安装依赖项。


通过本实验,系统掌握了ROS Kinetic工作空间的创建、编译、包管理及自动化开发流程,并熟悉了Zsh环境下的高效开发配置。


bash-zsh

ROS Kinetic工作空间(catkin_ws)详细实验流程

一、实验目标

通过实践掌握ROS Kinetic工作空间的创建、编译、包管理及环境配置,结合Bash脚本自动化备份与进程管理,形成完整的ROS开发环境搭建能力。


二、实验环境

  • 操作系统:Ubuntu 16.04 LTS
  • ROS版本:ROS Kinetic Kame
  • 工具catkin_makegedittreesshaptsudo

三、实验步骤与结果

1. 创建并初始化ROS工作空间

1.1 创建工作空间目录结构
 

bash

# 创建工作空间顶级目录
mkdir -p ~/catkin_ws/src
# 进入src目录并初始化工作空间
cd ~/catkin_ws/src
catkin_init_workspace
# 返回工作空间根目录
cd ~/catkin_ws
# 编译工作空间(生成build和devel目录)
catkin_make
1.2 验证工作空间结构
 

bash

# 安装tree工具(若未安装)
sudo apt install tree -y
# 查看工作空间目录结构
tree -L 2

预期输出

 

~/catkin_ws
├── build
│ ├── CMakeCache.txt
│ ├── CMakeFiles/
│ └── Makefile
├── devel
│ ├── env.sh
│ ├── setup.bash
│ └── lib/
└── src
├── CMakeLists.txt
└── (空或已有ROS包)

2. 创建ROS功能包

2.1 使用catkin_create_pkg创建包
 

bash

# 进入src目录
cd ~/catkin_ws/src
# 创建名为my_package的包,依赖roscpp、rospy、std_msgs
catkin_create_pkg my_package roscpp rospy std_msgs
2.2 验证包结构
 

bash

tree ~/catkin_ws/src/my_package

预期输出

 

~/catkin_ws/src/my_package
├── CMakeLists.txt
├── include/
│ └── my_package/
├── package.xml
└── src/

3. 编译工作空间

 

bash

# 返回工作空间根目录并编译
cd ~/catkin_ws
catkin_make
# 刷新环境变量(临时生效)
source devel/setup.bash
# 永久生效(添加到.bashrc)
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
3.1 验证环境变量
 

bash

echo $ROS_PACKAGE_PATH

预期输出

 

/home/user/catkin_ws/src:/opt/ros/kinetic/share

4. 编写并运行ROS节点

4.1 创建Python节点
 

bash

# 进入包的scripts目录
mkdir -p ~/catkin_ws/src/my_package/scripts
cd ~/catkin_ws/src/my_package/scripts
# 创建Python脚本
gedit talker.py &

脚本内容

 

python

#!/usr/bin/env python
import rospy
from std_msgs.msg import String
def talker():
pub = rospy.Publisher('chatter', String, queue_size=10)
rospy.init_node('talker', anonymous=True)
rate = rospy.Rate(10)
while not rospy.is_shutdown():
hello_str = "hello world %s" % rospy.get_time()
rospy.loginfo(hello_str)
pub.publish(hello_str)
rate.sleep()
if __name__ == '__main__':
try:
talker()
except rospy.ROSInterruptException:
pass
4.2 添加执行权限并运行
 

bash

chmod +x talker.py
# 启动roscore
roscore &
# 在新终端中运行节点
rosrun my_package talker.py

5. 编写Bash脚本自动化备份

5.1 创建备份脚本
 

bash

# 进入scripts/backup目录
mkdir -p ~/catkin_ws/src/scripts/backup
cd ~/catkin_ws/src/scripts/backup
# 创建备份脚本
gedit backup_kinetic.sh &

脚本内容

 

bash

#!/bin/bash
# ROS Kinetic备份脚本
set -euo pipefail
ROS_WS_DIR="$HOME/catkin_ws"
BACKUP_DIR="/var/backups/ros_kinetic"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
mkdir -p "$BACKUP_DIR"
tar --exclude='./build' --exclude='./devel' -czf "$BACKUP_DIR/ros_kinetic_$TIMESTAMP.tar.gz" "$ROS_WS_DIR"
echo "ROS Kinetic工作空间已备份至:$BACKUP_DIR"
5.2 添加执行权限并测试
 

bash

chmod +x backup_kinetic.sh
./backup_kinetic.sh

6. 配置.bashrc与进程管理

6.1 自定义.bashrc
 

bash

gedit ~/.bashrc &

添加内容

 

bash

# ROS Kinetic环境变量
source /opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.bash
# 自定义别名
alias cdw='cd ~/catkin_ws'
alias cds='cd ~/catkin_ws/src'
alias rosbackup='~/catkin_ws/src/scripts/backup/backup_kinetic.sh'
# 修改命令提示符
PS1="\[\e[32;1m\]\u@\h:\w\n\[\e[0;0m\]\$ "
6.2 进程管理
 

bash

# 查看ROS进程
ps aux | grep roscore
# 终止进程(假设PID为1234)
kill -9 1234

7. 使用SSH远程管理

7.1 配置SSH服务
 

bash

sudo apt install openssh-server -y
sudo service ssh start
# 生成SSH密钥对
ssh-keygen -t rsa -b 4096
# 将公钥复制到远程服务器(假设IP为192.168.1.100)
ssh-copy-id -i ~/.ssh/id_rsa.pub user@192.168.1.100
# 测试SSH连接
ssh user@192.168.1.100

8. 软件包管理

8.1 安装ROS Kinetic软件包
 

bash

sudo apt update
sudo apt install ros-kinetic-rviz ros-kinetic-turtlesim -y

四、实验总结

  1. 工作空间创建:通过catkin_init_workspacecatkin_make完成初始化与编译。
  2. 包管理:使用catkin_create_pkg创建功能包,并通过catkin_make编译。
  3. 节点开发:编写Python节点并通过rosrun运行。
  4. 自动化备份:Bash脚本结合tar命令实现ROS工作空间备份。
  5. 环境配置:通过.bashrc自定义终端行为,简化开发流程。
  6. 远程管理:SSH密钥认证提升安全性。
  7. 软件包管理apt统一管理ROS Kinetic依赖。

五、实验扩展

  1. 定时备份:使用cron实现每日自动备份。
  2. 多节点通信:结合rostopicrosservice实现节点间通信。
  3. 依赖解析:使用rosdep自动安装依赖项。

通过本实验,系统掌握了ROS Kinetic工作空间的创建、编译、包管理及自动化开发流程,为机器人开发奠定了坚实基础。


Linux系统操作与自动化实验报告(ROS Kinetic版本)

一、实验目标

本实验通过实践掌握Linux系统基础操作(目录管理、文件编辑、权限控制)、Bash脚本编程、环境变量配置、进程管理、SSH安全连接及软件包管理,结合ROS Kinetic工作空间(catkin_ws)案例进行系统化学习。


二、实验环境

  • 操作系统:Ubuntu 16.04 LTS
  • ROS版本:ROS Kinetic Kame
  • 工具:gedit、tree、ps、ssh、apt、sudo

三、实验步骤与结果

1. 目录与文件操作

1.1 查看ROS工作空间目录结构
 

bash

# 安装tree工具(若未安装)
sudo apt install tree
# 查看catkin_ws目录结构(限制显示深度为2层)
tree -L 2 ~/catkin_ws

预期输出

 

~/catkin_ws
├── build
│ ├── CMakeCache.txt
│ ├── cmake_install.cmake
│ └── Makefile
├── devel
│ ├── env.sh
│ ├── setup.bash
│ └── lib/
└── src
├── CMakeLists.txt
├── package1
└── package2
1.2 导航与创建目录/文件
 

bash

# 进入src目录
cd ~/catkin_ws/src
# 创建嵌套目录(如需备份ROS包)
mkdir -p scripts/backup
# 创建空文件
touch scripts/backup/backup_kinetic.sh
# 使用gedit编辑文件(写入ROS备份命令)
gedit scripts/backup/backup_kinetic.sh & # &表示后台运行gedit

gedit内容示例

 

bash

#!/bin/bash
# ROS Kinetic备份脚本
ROS_WS_DIR="$HOME/catkin_ws"
BACKUP_DIR="/var/backups/ros_kinetic"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
# 创建备份目录
mkdir -p "$BACKUP_DIR"
# 打包ROS工作空间(排除build和devel目录)
tar --exclude='./build' --exclude='./devel' -czf "$BACKUP_DIR/ros_kinetic_$TIMESTAMP.tar.gz" "$ROS_WS_DIR"
echo "ROS Kinetic工作空间已备份至:$BACKUP_DIR"

2. 文件权限管理

2.1 查看与修改权限
 

bash

# 查看backup_kinetic.sh的当前权限
ls -l ~/catkin_ws/src/scripts/backup/backup_kinetic.sh
# 添加所有者执行权限
chmod u+x ~/catkin_ws/src/scripts/backup/backup_kinetic.sh
# 修改权限为755(所有者可读写执行,组用户和其他用户可读执行)
chmod 755 ~/catkin_ws/src/scripts/backup/backup_kinetic.sh
2.2 权限说明
  • 权限类型
    • r(4):读取权限
    • w(2):写入权限
    • x(1):执行权限
  • 用户组
    • u:所有者(User)
    • g:组用户(Group)
    • o:其他用户(Others)
  • 示例chmod 755 file 等价于 chmod u=rwx,g=rx,o=rx file

3. Bash脚本编程

3.1 编写ROS备份脚本
 

bash

#!/bin/bash
# ROS Kinetic自动化备份脚本
set -euo pipefail # 错误处理:遇到错误立即退出
# 配置参数
ROS_WS_DIR="$HOME/catkin_ws"
BACKUP_DIR="/var/backups/ros_kinetic"
LOG_FILE="$BACKUP_DIR/backup.log"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
# 创建日志目录
mkdir -p "$BACKUP_DIR"
# 记录日志函数
log() {
echo "[$(date +'%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE"
}
# 执行备份
log "开始备份ROS Kinetic工作空间..."
tar --exclude='./build' --exclude='./devel' -czf "$BACKUP_DIR/ros_kinetic_$TIMESTAMP.tar.gz" "$ROS_WS_DIR"
log "备份完成:$BACKUP_DIR/ros_kinetic_$TIMESTAMP.tar.gz"
3.2 运行脚本与参数传递
 

bash

# 直接运行脚本
~/catkin_ws/src/scripts/backup/backup_kinetic.sh
# 模拟参数传递(需修改脚本支持getopts)
# 修改脚本头部添加参数解析:
while getopts "v" opt; do
case $opt in
v) VERBOSE=true ;;
*) echo "用法: $0 [-v]" ;;
esac
done
# 调用时:
bash ~/catkin_ws/src/scripts/backup/backup_kinetic.sh -v # 启用详细模式

4. 环境变量与.bashrc配置

4.1 查看与修改环境变量
 

bash

# 临时添加ROS Kinetic路径到PATH
export PATH="$HOME/catkin_ws/devel/bin:$PATH"
# 查看当前PATH
echo $PATH
# 过滤包含ROS的环境变量
env | grep "ROS"
4.2 自定义.bashrc
 

bash

# 编辑.bashrc文件
gedit ~/.bashrc &
# 添加以下内容到文件末尾:
# ROS Kinetic环境变量
source /opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.bash
# 自定义别名
alias ll='ls -lh'
alias cdw='cd ~/catkin_ws'
alias cds='cd ~/catkin_ws/src'
# 修改命令提示符
PS1="\[\e[32;1m\]\u@\h:\w\n\[\e[0;0m\]\$ "
# 使修改生效
source ~/.bashrc

5. 进程管理

5.1 查看与控制ROS进程
 

bash

# 查看所有roslaunch进程
ps aux | grep roslaunch
# 终止指定PID的进程
kill -9 12345 # 替换为实际PID
# 暂停与恢复进程(需先通过Ctrl+Z暂停)
jobs # 查看后台任务
bg %1 # 恢复任务1到后台
fg %1 # 将任务1恢复到前台

6. SSH安全连接

6.1 配置SSH服务
 

bash

# 安装SSH服务
sudo apt install openssh-server
# 启动SSH服务
sudo service ssh start
# 检查SSH状态
sudo service ssh status
# 生成SSH密钥对
ssh-keygen -t rsa -b 4096 # 生成高强度密钥
# 将公钥复制到远程服务器(假设IP为192.168.1.100)
ssh-copy-id -i ~/.ssh/id_rsa.pub user@192.168.1.100
# 免密登录测试
ssh user@192.168.1.100

7. 软件包管理

7.1 使用apt管理ROS Kinetic软件包
 

bash

# 更新软件包列表
sudo apt update
# 安装ROS Kinetic可视化工具
sudo apt install ros-kinetic-rviz
# 安装ROS Kinetic功能包(如turtlesim)
sudo apt install ros-kinetic-turtlesim
# 卸载软件包
sudo apt remove ros-kinetic-rviz
# 清理无用软件包
sudo apt autoremove

四、实验总结

  1. 目录管理
    • tree命令可视化目录结构,mkdir -p支持多级目录创建。
    • gedit提供图形化编辑,适合脚本开发。
  2. 权限控制
    • chmod通过数字或符号修改权限,确保脚本可执行。
    • 权限管理是系统安全的基础。
  3. 脚本自动化
    • Bash脚本结合错误处理和日志记录,简化重复任务。
    • 支持参数传递,增强灵活性。
  4. 环境配置
    • .bashrc自定义终端行为,export管理环境变量。
    • ROS Kinetic需显式加载环境配置。
  5. 进程管理
    • pskill组合实现进程监控与控制。
    • 合理使用后台任务(bg/fg)提高效率。
  6. SSH安全连接
    • 密钥认证替代密码登录,提升安全性。
    • 适用于远程开发或服务器管理。
  7. 软件包管理
    • apt统一管理ROS Kinetic软件包,简化安装与更新。

五、实验问题与解决

  1. 问题:执行脚本时报“权限不足”。
    解决:使用chmod +x script.sh添加执行权限,或通过bash script.sh直接运行。

  2. 问题:SSH登录时提示“Connection refused”。
    解决:检查SSH服务是否运行(sudo service ssh status),并确认防火墙未阻止22端口。

  3. 问题:ROS命令未找到。
    解决:确保已正确加载ROS环境(source /opt/ros/kinetic/setup.bash)。


六、实验扩展

  1. 定时备份

     

    bash

    # 编辑crontab
    crontab -e
    # 添加每日凌晨2点备份任务
    0 2 * * * /home/user/catkin_ws/src/scripts/backup/backup_kinetic.sh >> /var/log/ros_backup.log 2>&1
  2. ROS节点自动化启动
    在脚本中调用roslaunch命令,例如:

     

    bash

    #!/bin/bash
    source /opt/ros/kinetic/setup.bash
    source ~/catkin_ws/devel/setup.bash
    roslaunch package_name launch_file.launch
  3. 日志轮转
    使用logrotate管理备份日志文件大小和保留周期。


通过本实验,系统掌握了Linux系统操作与自动化工具,结合ROS Kinetic开发环境,为机器人开发及服务器管理提供了完整解决方案。



推荐:

001:https://automaticaddison.com/the-complete-guide-to-linux-fundamentals-for-robotics/002:https://www.lanqiao.cn/courses/854

001:

该网页是一篇关于在Linux系统上使用ROS(机器人操作系统)进行机器人项目开发的基础教程。教程内容涵盖了Linux系统下ROS开发所需的最常用命令和工具,旨在帮助读者快速掌握在Linux环境中进行ROS开发的基本技能。

教程内容概述:
  1. 准备工作
    • 确保在Ubuntu Linux上运行ROS(作者在Windows 10上的虚拟机中运行Ubuntu Linux)。
  2. 探索文件夹层次结构
    • 使用tree命令查看catkin_ws(ROS工作空间)文件夹的层次结构。
    • 学习如何导航到不同文件夹,使用cd命令。
  3. 创建新文件夹和文件
    • 使用mkdir命令创建新文件夹。
    • 使用touch命令创建新文件。
    • 使用gedit文本编辑器打开和编辑文件。
  4. 文件权限
    • 了解Linux中的文件权限(读、写、执行)和用户权限组(所有者、组、所有用户)。
    • 使用chmod命令修改文件权限。
  5. 创建Bash脚本
    • 学习如何编写和运行Bash脚本,以自动化命令执行。
    • 了解如何向Bash脚本传递参数。
  6. 探索.bashrc文件
    • 了解.bashrc文件的作用,它包含在打开新终端时自动运行的命令和配置。
  7. 环境变量
    • 使用export命令查看和修改环境变量。
    • 使用grep命令过滤包含特定字符串的环境变量。
  8. 理解Linux进程
    • 了解Linux中的前台进程和后台进程。
    • 使用ps命令查看当前运行的进程。
    • 学习如何启动、暂停、恢复和终止进程。
  9. 使用SSH协议
    • 了解SSH协议的作用,它提供了通过不安全网络安全访问计算机的方式。
    • 学习如何在Ubuntu Linux和Raspberry Pi之间设置SSH连接。
  10. 探索“sudo”和“apt”命令
    • 了解sudo命令的作用,它允许用户以超级用户权限运行命令。
    • 使用apt命令更新软件包列表和安装软件。

002:

蓝桥云课的ROS教程提供了ROS1(Kinetic版本)和ROS2(Ardent版本)的综合介绍,具有大量官方制定的教程源码和定制化学习方案。结合上述Linux基础教程,读者可以更全面地掌握在Linux系统上进行ROS开发所需的技能。

  • ROS环境配置:蓝桥云课教程详细介绍了如何在Linux上配置ROS环境,这与AutomaticAddison教程中的准备工作相呼应。
  • ROS项目实践:通过蓝桥云课的教程源码,读者可以在掌握Linux基础命令和工具后,进一步实践ROS项目的开发,加深对ROS的理解和应用能力。
  • 综合学习体验:结合两个教程,读者可以从Linux基础到ROS高级应用,逐步构建起完整的机器人开发知识体系。


http://www.hkcw.cn/article/yLjYaNLmCr.shtml

相关文章

贵州一公路巨石砸中汽车 司机轻伤车辆受损

5月28日,贵州毕节市七星关区何官屯镇一条通村公路突发落石。一块约300斤重的巨石砸中一辆过路汽车,导致车辆从路边高坎坠落。司机受轻伤,送医检查后当日返家,车损由保险公司处理。落石还击碎了附近民房的玻璃门,但无人受伤。事发地为地质灾害点,连续下雨诱发了这次事故。…

向武汉理工大学捐赠1分钱也有证书 培养捐赠意识

向武汉理工大学捐赠1分钱也有证书 培养捐赠意识!近日,武汉理工大学发起了一项名为“527生日捐”的活动,庆祝学校合并组建25周年。一些校友晒出了捐赠1分钱后获得的电子证书,引起了网友的关注。校方表示,该活动不限捐赠金额,主要目的是让大家参与进来,培养捐赠意识。有武…

Python打卡训练营-Day13-不平衡数据的处理

浙大疏锦行 知识点: 不平衡数据集的处理策略:过采样、修改权重、修改阈值交叉验证代码 过采样 过采样一般包含2种做法:随机采样和SMOTE 过采样是把少的类别补充和多的类别一样多,欠采样是把多的类别减少和少的类别一样 一般都是缺…

嵌入式学习笔记 - freeRTOS任务优先级抢占,时间片抢占的实现机制

一 任务优先级、时间片抢占 已经知道freeRTOS的任务切换函数发生在systick中断中,如下图 由上图可见,任务切换有个先决条件TaskIncrementTick()函数返回为1,这个函数如下图, 函数返回值为xSwitchRequired&…

西方国家对乌军援,再加码 张学峰:俄乌双方的较量还将持续一段时间:局势再添变数

德国新任总理默茨近日表示,德国等西方国家已全面解除对援乌远程武器的射程限制,允许乌克兰使用其提供的武器打击俄罗斯境内纵深军事目标。对此,俄罗斯总统新闻秘书佩斯科夫回应称,这一决定与俄方寻求和平解决冲突的努力背道而驰。默茨上任以来,在是否向乌克兰提供“金牛座…

钟南山谈新冠后肺结节患者增多 CT检查增加发现更多

钟南山谈新冠后肺结节患者增多 CT检查增加发现更多!我国约有1.5亿肺结节高危人群,每年新检出的肺结节病例达1000万至2000万。新冠疫情后肺结节检出率显著上升的原因之一是新冠后做CT的人数大幅增加,进而让更多的肺结节被发现。中国工程院院士钟南山表示,环境污染等也会导致…

油价或将上调 6月3日24时调整

油价或将上调 6月3日24时调整!成品油价将于6月3日24时进行调整。今日油价上涨,涨幅有所变动,国内油价整体呈上涨趋势,但接近搁浅。目前全国大部分地区的油价处于6元时代。下一次调价日期为6月3日晚24时。以下是今日油价概览:此外,可以参考历年油价走势以了解更多信息。责…

金靖张凌赫怨种姐弟又开始发力 两人互斗引热议

凌赫啊你小子又开始皮了,放弃吧牛牛你是斗不过金靖的允悲允悲允悲她那张嘴多会说,脑子还快,简直是血脉压制,你只能哞哞叫哈哈哈哈每周都等着看这俩姐弟的新乐子,太有意思了!责任编辑:zx0002

天降纸尿裤砸碎小车挡风玻璃 肇事者一直没有现身

5月23日,江门市蓬江区的周先生说他的爱车停放在小区楼下停车位,结果竟被一大袋用过的纸尿片砸中。这些浸湿的纸尿片重量惊人,周先生的车顶被砸凹,挡风玻璃也被砸碎了,车辆的维修费花了近6千元,事发已经过去多日,可肇事者一直没有现身。周先生说,报警已经多日,派出所一…

中国学生美国梦碎 签证政策引发留学困境

5月28日,特朗普政府威胁要吊销约27.7万名中国学生中的许多人的签证,并对来自中国内地和香港的未来申请者进行额外审查。这一消息让刚从美国驻北京大使馆走出来的18岁学生李昆泽感到焦虑。他刚刚成功申请到本科留学签证,但现在情况突变,时间紧迫,无法再申请其他国家的留学机…

《歌手2025》首轮袭榜赛制公布 投票截止前1小时隐藏票数

5月30日,湖南卫视歌手发布第二场揭榜赛制:微博网友可从7位在线歌手陈楚生、MickeyGuyton、GAI周延、白举纲、格瑞丝金斯勒、单依纯、马嘉祺中,为袭榜歌手查理普斯选择1位对决对象。截止至今天17:00,网友推荐次数最高的歌手将作为守榜歌手,在节目中与袭榜歌手进行1V1对决。…

余华回应刘楚昕获奖 感动与坚持的力量

人的一生会经历很多痛苦,但回首想起来都是传奇。近日,90后作家刘楚昕创作的小说《泥潭》获得了漓江文学奖虚构类奖。在发表获奖感言时,他哽咽着分享了和病故女友的故事,让不少网友潸然泪下。许多人表示,开头以为是“狗粮”,结局竟然是“刀子”。在现场听完刘楚昕的获奖感…

李兆杰教授因病逝世 法学界痛失领军人物

5月29日晚,清华大学法学院发布讣告,沉痛悼念李兆杰教授。李兆杰教授于2025年5月29日在北京因病逝世,享年70岁。李兆杰教授是汉族,籍贯山东省东明县,1955年出生于吉林省长春市。他曾在北京大学国际法研究所和清华大学法学院任教。作为改革开放以来我国新一代国际法学者中的…

端午假期京城有雨水搅扰,下周气温明显走高 阵风加大需防风

5月29日08时到5月30日08时,南郊观象台最高气温达到31.9℃(14:42),最低气温为18.7℃(04:05)。今天天空云量有所增多,午间依然较热,预计白天最高气温在32℃左右。午后阵风逐渐加大到六级左右,夜间减弱。今天下班时天气多云,偏南风3级、阵风5至6级,气温在31至27℃之间。…

阿韦洛亚成皇马B队新任主帅 传奇回归执教

5月28日,阿韦洛亚被任命为皇马卡斯蒂亚主帅,接替日前离任的劳尔。皇家马德里足球俱乐部宣布,阿尔瓦罗-阿韦洛亚将从2025-2026赛季起担任卡斯蒂亚主教练。阿韦洛亚是皇家马德里及西班牙足球的传奇人物,也是俱乐部青训体系中最具代表性的球员之一。他自2001年起在皇马青训营接…

东北三省一区有效发明专利近20万件 同比增长显著

国家知识产权局在今天的新闻发布会上透露,全国知识产权系统正积极助力新时代东北地区全面振兴,并已取得显著成效。截至今年4月底,东北三省一区的有效发明专利数量达到19.5万件,较去年同期增长了10.2%;有效注册商标数量增至216.1万件,同比增长7.7%。此外,该地区累计认定地…

阿曼将在公立学校开设中文课 促进文化交流与合作

阿曼教育部相关人士在出席中国驻阿曼大使馆与阿曼教育部联合举办的国际中文日活动上宣布,阿曼已决定将中文纳入公立学校课程。从今年9月开始的新学年,中文将成为四所公立高中11年级学生的选修课,并逐渐扩展至其他年级。在当天的活动上,阿曼教育部次大臣马吉德表示,阿曼政府…

2025年全国青少年信息素养大赛复赛C++集训(18):数列(题目及解析)

2025年全国青少年信息素养大赛复赛C++集训(18):数列(题目及解析) 题目描述 用以下方式构造数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。 给出一个正整数a,要求数列中第a个数对1000取模的结果是多少。 时间限制:1000 内存限制:65536 输入…

雨雨雨!今起中东部大范围降雨来袭 长江沿江成核心区域

从5月30日开始至6月2日,中东部地区将迎来新一轮较大范围的降雨,长江中下游一带将成为主要受影响区域,局地可能出现大暴雨并伴有强对流天气。公众出行需关注预警预报信息,端午假期避免前往山区等地质灾害易发地带游玩。此前,南方在5月27日至29日期间已经经历了一轮强降雨天…

58岁的“高考钉子户”梁实将参加第29次高考 追梦路上不言弃

梁实今年58岁,即将参加第29次高考。他告诉媒体,今年看书时间较少,感觉底气不足。尽管连续多年高考成绩均突破400分,但梁实认为这个分数非常基础,感觉自己没有进步,想再进一步感到困难。全国高考报名人数达到1335万人,梁实也将继续他的高考之路。他表示,上大学一直是他的…