ROS2 移动机器人开发
ROS是一个适用于机器人编程的框架, 这个框架把原本松散的零部件耦合在了一起, 为他们提供了通信架构。
ROS虽然叫做操作系统, 但并非Windows、 Mac那样通常意义的操作系统, 它只是连接了操作系统和你开发的ROS应用程序, 所以它也算是一个中间件.
基于ROS的应用程序之间建立起了沟通的桥梁, 所以也是运行在Linux上的运行环境, 在这个环境上, 机器人的感知、 决策、 控制算法可以更好的组织和运行。
ROS机器人开发流程
创建工作空间
1 | $ mkdir -p ~/ros2_ws/src |
创建功能包(Python)
1 | $ cd ~/ros2_ws/src |
其中 pkg02_helloworld_py
是功能包名,根据自己的需要修改
创建源码
进入 pkg02_helloworld_py
/pkg02_helloworld_py
目录,该目录下有一 helloworld.py
文件,修改文件内容如下:
1 | import rclpy |
配置编译规则
- 修改
package.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<package format="3">
<name>pkg02_helloworld_py</name>
<version>0.0.0</version>
<description>TODO: Package description</description>
<maintainer email="ros2@todo.todo">ros2</maintainer>
<license>TODO: License declaration</license>
<!-- 所需要依赖 -->
<depend>rclpy</depend>
<test_depend>ament_copyright</test_depend>
<test_depend>ament_flake8</test_depend>
<test_depend>ament_pep257</test_depend>
<test_depend>python3-pytest</test_depend>
<export>
<build_type>ament_python</build_type>
</export>
</package> setup.py
注释部分以后可能需要根据实际情况修改。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27from setuptools import setup
package_name = 'pkg02_helloworld_py'
setup(
name=package_name,
version='0.0.0',
packages=[package_name],
data_files=[
('share/ament_index/resource_index/packages',
['resource/' + package_name]),
('share/' + package_name, ['package.xml']),
],
install_requires=['setuptools'],
zip_safe=True,
maintainer='ros2',
maintainer_email='ros2@todo.todo',
description='TODO: Package description',
license='TODO: License declaration',
tests_require=['pytest'],
entry_points={
'console_scripts': [
# 映射源文件与可执行文件
'helloworld = pkg02_helloworld_py.helloworld:main'
],
},
)
编译和运行
1 | $ cd ~/ros2_ws/ |
程序执行,在终端下将输出文本:”hello world!”。
- 标题: ROS2 移动机器人开发
- 作者: Camill
- 创建于 : 2024-01-19 16:48:00
- 更新于 : 2024-01-22 17:34:00
- 链接: https://camill.love/note/ros2-originbot/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论