# 引入环境变量,这里我们要把我们创建的Anaconda虚拟环境加入环境变量
import sys
new_path = '/home/amiya/anaconda3/envs/pytorch/lib/python3.10/site-packages'
if new_path not in sys.path:
sys.path.insert(0,new_path)
# 然后我们就可以引入Anaconda虚拟环境中的包
from ultralytics import YOLO
import torch
效果如图
【至此,我们就已经完成了 ros2 和 pytorch 环境共存的配置】
四.测试
1.示例代码
# 系统环境的包
import rclpy
from rclpy.node import Node
from std_msgs.msg import String
# 引入Anaconda虚拟环境的变量,这里我的Ubuntu用户名是amiya,我的虚拟环境名叫pytorch
import sys
new_path = '/home/amiya/anaconda3/envs/pytorch/lib/python3.10/site-packages'
if new_path not in sys.path:
sys.path.insert(0,new_path)
# 引入 pytorch虚拟环境 才有的包
from ultralytics import YOLO
class test(Node):
def __init__(self):
super().__init__('test')
self.publisher = self.create_publisher(String, 'test', 10)
self.timer = self.create_timer(5, self.test_callback)
self.test_yolo()
print('初始化完成')
# 这里是Yolo官方文档的代码示例
def test_yolo(self):
# Create a new YOLO model from scratch
model = YOLO("yolo11n.yaml")
# Load a pretrained YOLO model (recommended for training)
model = YOLO("yolo11n.pt")
# Train the model using the 'coco8.yaml' dataset for 3 epochs
results = model.train(data="coco8.yaml", epochs=3)
# Evaluate the model's performance on the validation set
results = model.val()
# Perform object detection on an image using the model
results = model("https://ultralytics.com/images/bus.jpg")
# Export the model to ONNX format
success = model.export(format="onnx")
# 发布者回调函数
def test_callback(self):
msg = String()
msg.data ='你好世界'
self.publisher.publish(msg)
def main(args=None):
rclpy.init(args=args)
node = test()
rclpy.spin(node)
rclpy.shutdown()
所有评论(0)