项目简介
本项目基于Python和ROS2框架开发,以ROS2 NODE
形式运行于ROS2(Robot Operating System)
基础环境。它是AGV
(自动引导车)、机器人调度系统
与路网编辑及路网规划系统
间的关键桥梁,负责将AGV
各类数据上传至Mqtt Server
,同时接收并传达机器人调度系统
和路网编辑、路网规划系统
的指令,未来还会作为视频、音频、照片、环境等数据的中转站。
项目的主要特性和功能
- 数据交互桥梁:连接
AGV
、机器人调度系统
与路网编辑及路网规划系统
,支撑数据传输。 - 数据上传:将
AGV
的ROS2 NODE Data
(如下行指令、任务调度指令、车辆状态数据、任务状态、通用数据等)上传至Mqtt Server
。 - 指令接收与下达:接收并向下传达
机器人调度系统
和路网编辑、路网规划系统
的指令。 - 待扩展功能:计划作为视频、音频、照片、环境等数据的中转站。
安装使用步骤
前提条件
假设用户已下载本项目的源码文件,且已安装ROS2
并正确设置其环境变量。
具体步骤
启动EMQX
在di-nano
目录下执行:
shell
docker-compose -f ./deploy/docker-compose-emqx.yml up -d
初始化项目
若为第一次初始化:
shell
cd nano/nano
python3 -m venv .venv
source .venv/bin/activate
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
若不是第一次初始化:
shell
cd nano/nano
source .venv/bin/activate
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
安装新的Py包(可选)
在nano/nano
目录下执行:
shell
pip freeze > requirements.txt
构建ros2:emqx
基本环境(内部安装)
在di-nano
目录下执行:
shell
docker build -t ros2:emqx -f deploy/ros.dockerfile .
启动一个工作区
在di-nano
目录下执行:
shell
docker run --name ros2 -v .:/root/workspaces/src -itd ros2:emqx bash
测试ROS2
容器是否正常(可选)
开启两个终端分别执行:
- 第一个终端(监听node):
shell
docker exec -it nano_dev ./ros_entrypoint.sh bash
ros2 run demo_nodes_cpp listener
- 第二个终端(发布node):
shell
docker exec -it nano_dev ./ros_entrypoint.sh bash
ros2 run demo_nodes_cpp talker
傻瓜式调试开发
- 启动容器:
- 第一种单独构建镜像然后启动:
shell cd di-nano/ docker run --name ros2 -v .:/root/workspaces/src -itd ros2:emqx /bin/bash
- 第二种用docker-compose启动:
shell cd di-nano/devops docker-compose -f ./deploy/docker-compose-ros.yml up -d
- 第一种单独构建镜像然后启动:
- 后续调试开发步骤:
shell docker exec -it nano_dev ./ros_entrypoint.sh bash cd ~/workspaces/ pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r src/nano/nano/requirements.txt colcon build source install/setup.bash ros2 run nano nano ros2 run nano nano --ros-args -p conf_file:=/root/workspaces/src/nano/params/nano.yaml ros2 launch nano nano.launch.py start:=true
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】