Ros方向第一次汇报

文章目录

  • 1.本方向内学习内容:
    • 1.1.完成了基于ARM64架构下pd虚拟机中Ubuntu Linux的安装:
    • 1.2.学习了Linux基本命令行操作:
    • 1.3完成海龟仿真:
    • 1.4.完成了工作空间与功能包的创建:
      • 1.4.1.创建工作空间:
      • 1.4.2.自动安装依赖:
      • 1.4.3.配置环境变量:
      • 1.4.4.功能包创建:
  • 2.本方向外学习内容:
    • 2.1.完成了C语言的学习:
      • 2.1.1.完成了井字棋、扫雷的游戏:
      • 2.1.2.完成了贪吃蛇小游戏:
      • 2.1.3.完成了校内C语言期末考核:
    • 2.2.学习了部分数据结构并即将结束JAVA SE的学习:

1.本方向内学习内容:

1.1.完成了基于ARM64架构下pd虚拟机中Ubuntu Linux的安装:

由于本人使用MacOS,对pd虚拟机操作更加熟悉,于是放弃使用vm虚拟机及配套安装教程,但由此会引发一些问题,如:教程少、学习成本高、适配性较差等。所以花了更多时间去找ARM架构的安装包。但是官方不提供该系列安装包的18.版本而且不提供可视化图形界面,我在下载安装后又去谷歌等搜索引擎上搜索安装图形化操作界面的命令,经过一番操作后终于完成了22.04版本的安装(虽与工程机18版本不同但鉴于学习目的,无伤大雅),并且完成了系统环境参数的配置。

1.2.学习了Linux基本命令行操作:

命令 描述 例子
pwd 显示当前工作目录的路径 pwd
ls 列出目录中的文件和子目录 ls
cd 切换目录 cd <目录路径>
cp 复制文件或目录 cp <源文件/目录> <目标目录>
mv 移动文件或目录,也可用于重命名文件 mv <源文件/目录> <目标目录/文件>
rm 删除文件或目录 rm <文件/目录>
mkdir 创建新目录 mkdir <目录名>
rmdir 删除空目录 rmdir <目录名>
touch 创建空文件或更新文件的时间戳 touch <文件名>
cat 查看文件内容 cat <文件名>
nano 在终端中编辑文本文件 nano <文件名>
vim 在终端中编辑文本文件 vim <文件名>
grep 在文件中搜索文本模式 grep <模式> <文件名>
chmod 更改文件或目录的权限 chmod <权限> <文件/目录>
chown 更改文件或目录的所有者 chown <新所有者> <文件/目录>
ps 显示当前运行的进程 ps
kill 终止进程 kill <进程ID>

一些重要子命令:
cd命令的子命令:

子命令 描述 例子
cd ~ 进入当前用户的主目录 cd ~
cd / 进入根目录 cd /
cd .. 进入上级目录 cd ..
cd - 返回上一个工作目录 cd -
cd /path/to/directory 进入指定路径的目录 cd /path/to/directory
cd ../relative/path 进入相对于当前目录的子目录 cd ../relative/path
cd -P 强制进入物理路径而非符号链接路径 cd -P /path/to/symlink
cd -L 强制进入符号链接路径而非物理路径 cd -L /path/to/symlink

rm命令的子命令:

子命令 描述 例子
rm -f 强制删除文件或目录 rm -f <文件/目录>
rm -r 递归删除目录及其内容 rm -r <目录>
rm -i 在删除前进行提示 rm -i <文件/目录>
rm -v 显示每个被删除的文件 rm -v <文件/目录>
rm -- 指示后续内容不是选项 rm -- <文件/目录>
rm -rf 强制递归删除目录及其内容 rm -rf <目录>
rm -r --preserve-root 保护根目录,避免意外删除 rm -r --preserve-root /
rm -d 删除目录本身而非其内容 rm -d <目录>

ls命令的子命令:

子命令 描述 例子
ls -l 以详细列表形式显示文件信息 ls -l
ls -a 显示所有文件,包括隐藏文件 ls -a
ls -lh 以人类可读格式显示文件大小 ls -lh

mkdir命令的子命令:

子命令 描述 例子
mkdir <目录名> 创建新目录 mkdir my_directory
mkdir -p 创建多级目录 mkdir -p path/to/my_directory
mkdir -m 指定权限创建目录 mkdir -m 755 my_directory
mkdir --help 显示帮助信息 mkdir --help
mkdir --version 显示版本信息 mkdir --version

cp命令的子命令:

子命令 描述 例子
cp -r 复制目录及其内容 cp -r <源目录> <目标目录>
cp -i 在覆盖文件前进行提示 cp -i <源文件> <目标目录>
cp -u 仅复制更新的文件 cp -u <源文件> <目标目录>

mv命令的子命令:

子命令 描述 例子
mv -u 仅在目标文件更新时移动 mv -u <源文件/目录> <目标目录>
mv -i 在覆盖文件前进行提示 mv -i <源文件/目录> <目标目录>
mv -b 在移动前创建备份 mv -b <源文件/目录> <目标目录>

chmod命令的子命令:

子命令 描述 例子
chmod +x 赋予文件执行权限 chmod +x <文件>
chmod -r 递归地更改目录及其子目录的权限 chmod -r <权限> <目录>
chmod u+w 赋予文件所有者写权限 chmod u+w <文件>

ps命令的子命令:

子命令 描述 例子
ps -ef 显示所有进程的详细信息 ps -ef
ps aux 显示所有用户的进程信息 ps aux
ps -e --forest 以树形结构显示进程关系 ps -e --forest

1.3完成海龟仿真:

运行海龟仿真节点程序:

ros2 run turtlesim turtlesim_node

Ros方向第一次汇报_第1张图片
再打开一个终端,获取键盘读取信息:

ros2 run turtlesim turtle_teleop_key

Ros方向第一次汇报_第2张图片
打印正在运行的节点信息:

ros2 node list

Ros方向第一次汇报_第3张图片

打印某节点具体信息:

ros2 node info <运行的某节点>

Ros方向第一次汇报_第4张图片
打印(可获取的)(正在发布订阅的)所有话题信息:

ros2 topic list

Ros方向第一次汇报_第5张图片
详细打印某个话题信息:

ros2 topic echo <某话题>

Ros方向第一次汇报_第6张图片

1.4.完成了工作空间与功能包的创建:

工作空间(workspace)是一个存放项目开发相关文件的文件夹;是开发过程的大本营。
src:代码空间(Source Space)
install:安装空间(Install Space)
build:编译空间(Build Space)
log:日志空间(Log Space)
Ros方向第一次汇报_第7张图片

1.4.1.创建工作空间:

Ros方向第一次汇报_第8张图片

1.4.2.自动安装依赖:

跳转到工作空间根目录后输入以下命令:

sudo apt install python3-pip
sudo pip3 install rosdepc
rosdepc install -i --from-path src --rosdistro humble -y
sudo apt install python3-colcon-ros
colcon build

直到编译成功:
Ros方向第一次汇报_第9张图片

1.4.3.配置环境变量:

source install/local_setup.sh

可在.bashrc中添加命令:
Ros方向第一次汇报_第10张图片

1.4.4.功能包创建:

ros2 pkg create --build-type ament_cmake <功能包名字>//创建c++功能包
ros2 pkg create --build-type ament_python <功能包名字>//创建py功能包

Ros方向第一次汇报_第11张图片

2.本方向外学习内容:

2.1.完成了C语言的学习:

2.1.1.完成了井字棋、扫雷的游戏:

本人于去年寒假完成了两个小游戏,并将详细过程写成了博客,链接如下:
https://editor.csdn.net/md/?articleId=132046946(扫雷)
https://editor.csdn.net/md/?articleId=131962318(井字棋)

Ros方向第一次汇报_第12张图片

2.1.2.完成了贪吃蛇小游戏:

本人于本学期运用win32API完成了基于c语言命令行版本的贪吃蛇小游戏,还未来得及写成博客,后续可能会跟进。
Ros方向第一次汇报_第13张图片 Ros方向第一次汇报_第14张图片
相关代码我已放在本人gitee与github中:
本人gitee:https://gitee.com/wpcnb
本人github:https://github.com/402308383

2.1.3.完成了校内C语言期末考核:

本人以98分的成绩顺利完成校内期末C语言考核。

2.2.学习了部分数据结构并即将结束JAVA SE的学习:

本人在空闲时间学习JAVA,现在即将完成JAVA SE的学习。
本人亦在空闲时间学习了部分数据结构,包括但不限于顺序表,(单/双)链表等,基于单链表的数据结构完成了简单的通讯录。

本人CSDN:

你可能感兴趣的:(学习计划,c语言,笔记,数据结构)