专业的o2o网站建设,河南建设厅网站查证,宿州网站建设设计公司,国家工商注册查询系统官网一、说明 这里说说编译和包生成的操作要点#xff0c;以python包为例。对于初学者来说#xff0c;colcon和ament需要概念上搞清楚#xff0c;与此同时#xff0c;工作空间、包、节点在一个工程中需要熟练掌握。本文以humble版的ROS2#xff0c;进行python编程的实现。 二、…一、说明 这里说说编译和包生成的操作要点以python包为例。对于初学者来说colcon和ament需要概念上搞清楚与此同时工作空间、包、节点在一个工程中需要熟练掌握。本文以humble版的ROS2进行python编程的实现。 二、编译器安装配置
2.1 关于编译器的安装 colcon是ros2的编译器如果我们想看到colcon编译器需要到指定位置 ls /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash 如果没有安装需要如下语句安装之 sudo apt updatesudo apt install python3-colcon-common-extensions 一般来说在安装humble版ros2已经安装好colcon以上步骤可以忽略。
2.2 关于编译器的配置 在~/.bashrc中配置编译器 vim ~/.bashrc 将以下语句追加到~/.bashrc的最后语句。 source /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash三、建立工程
3.1 建立工程的工作空间
cd ~/tmp
mkdir -p ros2_ws/src
3.2 编译一个空的workspace 编译一个空的工程
cd ros2_ws
colcon build 设置系统路径、编译器路径、本工程的路径路径:sudo gedit ~/.bashrc,追加如下 source /opt/ros/humble/setup.bashsource /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bashsource ~/tmp/ros2_ws/install/setup.bash
四、建立一个软件包
4.1 生成一个包 注意包生成的路径 cd ros2_ws/src 生成一个包 ros2 pkg create my_robot_controller --build-type ament_python --dependencies rclpy通过以上create语句生成一个名字叫my_robot_controller的包。
4.2 包的在工程中的位置 工作空间中不外乎两个指令编译指令、包生成指令它们执行的地点应该明确了。如下图 这里参看整个workspace的路径
cd ros2_ws
tree
├── build
│ ├── COLCON_IGNORE
│ └── my_robot_controller
│ ├── build
│ │ └── lib
│ │ └── my_robot_controller
│ │ └── __init__.py
│ ├── colcon_build.rc
│ ├── colcon_command_prefix_setup_py.sh
│ ├── colcon_command_prefix_setup_py.sh.env
│ ├── install.log
│ ├── my_robot_controller.egg-info
│ │ ├── dependency_links.txt
│ │ ├── entry_points.txt
│ │ ├── PKG-INFO
│ │ ├── requires.txt
│ │ ├── SOURCES.txt
│ │ ├── top_level.txt
│ │ └── zip-safe
│ └── prefix_override
│ ├── __pycache__
│ │ └── sitecustomize.cpython-310.pyc
│ └── sitecustomize.py
├── install
│ ├── COLCON_IGNORE
│ ├── local_setup.bash
│ ├── local_setup.ps1
│ ├── local_setup.sh
│ ├── _local_setup_util_ps1.py
│ ├── _local_setup_util_sh.py
│ ├── local_setup.zsh
│ ├── my_robot_controller
│ │ ├── lib
│ │ │ └── python3.10
│ │ │ └── site-packages
│ │ │ ├── my_robot_controller
│ │ │ │ ├── __init__.py
│ │ │ │ └── __pycache__
│ │ │ │ └── __init__.cpython-310.pyc
│ │ │ └── my_robot_controller-0.0.0-py3.10.egg-info
│ │ │ ├── dependency_links.txt
│ │ │ ├── entry_points.txt
│ │ │ ├── PKG-INFO
│ │ │ ├── requires.txt
│ │ │ ├── SOURCES.txt
│ │ │ ├── top_level.txt
│ │ │ └── zip-safe
│ │ └── share
│ │ ├── ament_index
│ │ │ └── resource_index
│ │ │ └── packages
│ │ │ └── my_robot_controller
│ │ ├── colcon-core
│ │ │ └── packages
│ │ │ └── my_robot_controller
│ │ └── my_robot_controller
│ │ ├── hook
│ │ │ ├── ament_prefix_path.dsv
│ │ │ ├── ament_prefix_path.ps1
│ │ │ ├── ament_prefix_path.sh
│ │ │ ├── pythonpath.dsv
│ │ │ ├── pythonpath.ps1
│ │ │ └── pythonpath.sh
│ │ ├── package.bash
│ │ ├── package.dsv
│ │ ├── package.ps1
│ │ ├── package.sh
│ │ ├── package.xml
│ │ └── package.zsh
│ ├── setup.bash
│ ├── setup.ps1
│ ├── setup.sh
│ └── setup.zsh
├── log
│ ├── build_2023-03-02_10-42-14
│ │ ├── events.log
│ │ └── logger_all.log
│ ├── build_2023-03-02_10-50-32
│ │ ├── events.log
│ │ ├── logger_all.log
│ │ └── my_robot_controller
│ │ ├── command.log
│ │ ├── stderr.log
│ │ ├── stdout.log
│ │ ├── stdout_stderr.log
│ │ └── streams.log
│ ├── build_2023-03-02_10-57-14
│ │ ├── events.log
│ │ ├── logger_all.log
│ │ └── my_robot_controller
│ │ ├── command.log
│ │ ├── stderr.log
│ │ ├── stdout.log
│ │ ├── stdout_stderr.log
│ │ └── streams.log
│ ├── COLCON_IGNORE
│ ├── latest - latest_build
│ └── latest_build - build_2023-03-02_10-57-14
└── src└── my_robot_controller├── my_robot_controller│ ├── __init__.py│ └── my_first_node.py├── package.xml├── resource│ └── my_robot_controller├── setup.cfg├── setup.py└── test├── test_copyright.py├── test_flake8.py└── test_pep257.py
4.3 包生成后重新编译 在包生成后进行一次空的编译
cd ros2_ws
colcon build 如果出现下述信息恭喜您有中着了 这里错误原因是setuptooks版本太高引起查看版本 pip3 list 如果没有pip3用sudo apt install python3-pip安装。 pip3 list |grep setuptools 用 pip install setuptools58.2.0 语句可以降低版本然后执行无误。 五、生成python节点
5.1 节点程序位置 在以上的工作空间找到包路径 cd ./ros2_ws/src/my_robot_controller/my_robot_controller
5.2 编写节点
文件名称 sudo vim first_node.py 将上述文件保存后执行colcon编译。注意colcon总是在workspace路径上执行 在setup.py配置如下 再次强调需要source文件.bashrc source /opt/ros/humble/setup.bashsource /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bashsource ~/tmp/ros2_ws/install/setup.bash 再次编译编译过后执行 ros2 run my_robot_controller test_node
可以启动。注意这里test_node也可以用first_node.py代替。