网站首页

人工智能P2P分享搜索全网发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

【地平线旭日X3派试用体验】复现《人体跟随》小

时间:2022-12-02 14:44

人气:

作者:admin

导读:期待AI的世界,想让自己的生活也AI一把,并且一向是个能动口绝不动手的懒人,于是热衷于体验各类AI机器人,尤其是动动口就能操控的机器人,想着有朝一日过上“能只动口绝不动手...

一,准备工作

准备工作详情见前几节内容:

pYYBAGOJafaAMiYgAAcPhEtfjzs245.png
  • 旭日X3派已烧录好地平线提供的Ubuntu20.0.4或Linux系统镜像;
  • 旭日X3派已成功安装TogetherROS
  • 旭日X3派已安装F37 sensor;
  • 和旭日X3派在同一网段(有线或者连接同一无线网,IP地址前三段需保持一致)的PC;
  • 小车硬件准备。

二,启动官方例程

使用MobaXterm,SSH登录,建立一个终端,输入以下指令:

# 配置TogetherROS环境 source /opt/tros/setup.bash # 从TogetherROS的安装路径中拷贝出运行示例需要的配置文件。 cp -r /opt/tros/lib/mono2d_body_detection/config/ . #启动launch文件 ros2 launch body_tracking hobot_body_tracking_without_gesture.launch.py

三,启动小车接收node控制程序

上面的人体识别程序全部使用官方教程。但小车控制程序,需要根据自己的小车进行修改,需要另外一个接收消息的程序。我的小车和官方的不一样,所以不能直接使用官方代码了,原理官方有介绍:

下面是订阅/cmd_vel话题的控制消息程序

from geometry_msgs.msg import Twist import rclpy from rclpy.node import Node from std_msgs.msg import String import Hobot.GPIO as GPIO import time import sys import os import serial import serial.tools.list_ports output_pin26 = 26 output_pin28 = 28 output_pin38 = 38 # BOARD 缂栫爜 38 output_pin40 = 40 GPIO.setmode(GPIO.BOARD) GPIO.setup(output_pin26, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(output_pin28, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(output_pin38, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(output_pin40, GPIO.OUT, initial=GPIO.LOW) uart_dev='/dev/ttyS3' baudrate = 115200 try: ser = serial.Serial(uart_dev, int(baudrate), timeout=1) # 1s timeout print("open serial sucess") except Exception as e: print("open serial failed!\n") class CmdNode(Node): def __init__(self,name): super().__init__(name) self.sub_cmd = self.create_subscription(Twist,"cmd_vel",self.recv_cmd_callback,6) def recv_cmd_callback(self,cmd): self.cmd_speed=cmd._linear._x #获取平移运动的步长 self.cmd_angular=cmd._angular._z #获取旋转运动的步长 # print("get msg sucess") if(self.cmd_speed>0): GPIO.output(output_pin26, GPIO.HIGH) GPIO.output(output_pin28, GPIO.LOW) GPIO.output(output_pin38, GPIO.HIGH) GPIO.output(output_pin40, GPIO.LOW) print("111") elif(self.cmd_angular>0): GPIO.output(output_pin26, GPIO.LOW) GPIO.output(output_pin28, GPIO.LOW) GPIO.output(output_pin38, GPIO.HIGH) GPIO.output(output_pin40, GPIO.LOW) print("222") elif(self.cmd_angular<0): GPIO.output(output_pin26, GPIO.HIGH) GPIO.output(output_pin28, GPIO.LOW) GPIO.output(output_pin38, GPIO.LOW) GPIO.output(output_pin40, GPIO.LOW) print("333") else: GPIO.output(output_pin26, GPIO.LOW) GPIO.output(output_pin28, GPIO.LOW) GPIO.output(output_pin38, GPIO.LOW) GPIO.output(output_pin40, GPIO.LOW) print("444") def main(args=None): rclpy.init(args=args) #初始化库 sub_node = CmdNode("sub") #新建节点对象 rclpy.spin(sub_node) #spin循环节点 rclpy.shutdown #关闭客户端 if __name__ == '__main__': main() 好了,准备好程序,另外新建一个终端,输入指令 # 配置TogetherROS环境 source /opt/tros/setup.bash #启动订阅消息程序 python3 /app/40pin_samples/zyd_ros_cmd_control.py

end

原作者:zhengyad
原链接:本文转自地平线开发者社区

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信