ROS2学习记录(1)

工作空间(workspace):存放项目开发相关文件的文件夹,项目的根目录。

工作空间结构如下:
  • src:代码空间(Source Space),源码所在地
  • install:安装空间(Install Space),代码的编译结果,可执行程序
  • build:编译空间(Build Space),编译过程产生的中间文件,一般不可读
  • log:日志空间(Log Space)
创建工作空间:

mkdir -p ./test_ws/src

在当前目录下创建工作空间test_ws及其代码空间,-p指定自动创建目标路径中所有不存在的父目录,且如果目标目录已存在也不会报错。

常规python环境配置:

sudo apt install -y python3-pip

为了便于ros2环境管理,还需安装python的rosdep库:

sudo pip3 install rosdepc
sudo rosdepc init
rosdepc update

在实际操作情况下,执行第三条语句时出现了如下问题:

ERROR: unable to process source [file:///usr/share/python3-rosdep2/debian.yaml]:
	<urlopen error [Errno 2] No such file or directory: '/usr/share/python3-rosdep2/debian.yaml'> (file:///usr/share/python3-rosdep2/debian.yaml)

询问deepseek老师得知,需要用apt方式安装rosdepc才会出现那个文件,避免报错。

执行:

sudo apt update
sudo apt install python3-rosdep2
rosdepc update

此外,还需要配置另一个工作空间搭建工具,执行:

sudo apt install python3-colcon-ros

到此,环境已正常配置。

创建工作空间后,可以使用rosdep便捷地引入所需依赖,在工作空间目录下执行:

rosdepc install -i --from-path src --rosdistro humble -y

然后准备正式启动项目,来到工作空间目录下,执行:

colcon build

自动对工作空间进行编译。在项目写完后(即src内的源码写完)执行该语句,会在install内构建对应的可执行程序。

此时还应将依赖等环境引入环境变量:

source install/local_setup.sh

须知,该命令仅对当前命令行窗口有效。想要避免每个窗口多次设置,可以去home文件夹内,找到.bashrc文件(本身是隐藏文件),在文末加入相关语句。

功能包

降低不同功能间的耦合度,增加程序可复用性。

在工作空间的src目录下创建功能包代码形式如下:

ros2 pkg create --build-type <build-type> <package_name>

创建c++功能包时,build-type参数类型为ament_cmake;创建python功能包时,build-type参数类型为ament_python。

在功能包内编写源码后,需要编译(即colcon build语句)后才能加入到install形成可执行文件,并再次执行source代码更新环境变量才可被执行。

c++文件功能包必然存在两个文件:package.xmlCMakerLists.txt

package.xml文件的主要内容如下,包含功能包的版权描述,和各种依赖的声明。

CMakeLists.txt文件是编译规则,C++代码需要编译才能运行,所以必须要在该文件中设置如何编译,使用CMake语法。

python功能包会有这两个文件:package.xmlsetup.py

package.xml文件的主要内容和C++版本功能包一样,包含功能包的版权描述,和各种依赖的声明。

setup.py文件里边也包含一些版权信息,除此之外,还有“entry_points”配置的程序入口。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇