ROS相关知识
做毕设用到了ROS,这里记录ROS相关知识; 语言基于Python,因为C++短时间学不起来,Python的话还能懂一些; 工作空间构建 创建一个新的文档夹 我们创建一个新的文档夹作为新的工作空间的开始 给每个新的工作空间创建一个新的文档夹是一个好习惯,取上面名字无关紧要,但是最好能从这个名字上看出这个工作空间是干什么的,例如main_ws,(主要工作空间): mkdir main_ws 将功能包放入src也是一个比较好的习惯,我们创建一个工作空间同时创建一个src文档夹,然后进入这个文档夹内: mkdir main_ws/src cd main_ws/src 与ROS1不同,ROS2的工作空间并不需要init; 自定义包 如何在ROS2中创建一个功能包呢?我们可以使用这个指令: $ ros2 pkg create --build-type 在ros2命令中: pkg:表示功能包相关的功能; create:表示创建功能包; build-type:表示新创建的功能包是C++还是Python的,如果使用C++或者C,那这里就跟ament_cmake,如果使用Python,就跟ament_python; package_name:新建功能包的名字。 比如在终端中分别创建C++和Python版本的功能包: cd ~/main_ws/src ros2 pkg create --build-type ament_cmake learning_pkg_c # C++ ros2 pkg create --build-type ament_python learning_pkg_python # Python 对于Python包: 只需要进到构建的包文件夹中,进入与上一层文件夹名字相同的包中即可,然后写入源文件; 然后修改package.xml文件: from setuptools import setup package_name = 'serial_test' 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='xioafei', maintainer_email='2253770787@qq.com', description='TODO: Package description', license='TODO: License declaration', tests_require=['pytest'], entry_points={ 'console_scripts': [ 'interface_object_pub = serial_test.interface_object_pub:main', # 'interface_object_sub = serial_test.interface_object_sub:main', ], }, ) 编译功能包 在创建好的功能包中,我们可以继续完成代码的编写,之后需要编译和配置环境变量,才能正常运行: ...