本末刑天ROS-消息遥测

2022-11-29 14:46:22 浏览数 (1)

所谓才华,就是基本功的溢出。所谓自信,不过是基本功的反复练习。 基本功

要以匠人的心态,把每件小事都做到极致,就是基本功。行动有规划,事事有结果,件件有回音(就像我之前说的,做一个让别人放心的人),这也是基本功。

大家可能没有见过开关的位置

还有可爱的RC接收器,机器人只有配遥控器的时候,我才会说它是机器人

可以和我的手比较一下大小

手指的地方是调节足腿的高度

反过来机器可以看到其实是6个电机的协同工作

如果你实在喜欢的不行,这里也有一个世面上的价格

这个是今天拍摄的,可以看到机器稍微有点飘

另外狗子也长大啦,可以背着我的小书包去念书了

如果觉得本末的太贵,也可以自己DIY,可以看我下面的两篇文章

本末推荐使用的是ROS2,其实也是可以使用ROS1控制的:

记住版本是Ubuntu20.04

对着这个看

这个是ROS2

ROS1和ROS2的比较

这个是ROS2的一个层级关系,你看上面两层就行

以及里面的一些基本概念,你需要了解一下

这里就使用古月居的PPT啦~

节点的互相通讯

话题之间的通讯

话题之间的通讯模型

话题之间的应用

服务通讯

动作

参数

分布式通讯

这里是使用的古月居的PPT了,他的教程在这里:

代码语言:javascript复制
https://www.guyuehome.com/blog/column/id/147

没想到现在才是噩梦的开始,我本来想在板子上面跑这个SDK,结果也搞不成。

真坑。。。地平线和DJI妙算一起扑街,我心说在板子上面跑跑SDK。没想到地平线的系统坏了,任何写入的命令都是写不进去。

重装解决了

代码语言:javascript复制
dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.

如果是报错这个错误

代码语言:javascript复制
sudo dpkg --configure -a

执行这个还是可以的,不过事实证明还是有错误的

代码语言:javascript复制
sudo apt-get update
sudo apt-get upgrade

反正就是系统只读了,不是很懂这个意思

妙算就更狗了,我是万万没有想到它把ROS的安装目录放桌面,我看着文件夹心烦都删除了,看了看bash就傻眼了。。。我心想重装一下系统,后来看了看步骤好多了。。。不搞了,但是我正常安装ROS的时候,安装命令输入一半就是就卡住了,算了,国庆节不能生气气。

气死了,什么破板子

接下来看看本末开发文档。

代码语言:javascript复制
sudo apt install python3-colcon-common-extensions
mkdir -p ~/diablo_ws/src
cd ~/diablo_ws/src

#clone API source code
git clone -b basic https://github.com/DDTRobot/diablo_ros2.git

cd ~/diablo_ws
colcon build
source install/setup.bash

#before starting the node , please check of serial port in diablo_ctrl.cpp is correct.
ros2 run diablo_ctrl diablo_ctrl_node

#run controller python script
ros2 run diablo_teleop teleop_node 

这些就是安装过程了

这个是所有节点

控制的节点消息发给,电机和姿态的节点,控制节点的消息也可以是你

这个CMD是控制的协议,CTRL是映射的摇杆的消息

在此功能包中,定义了四种传感器数据的发布方式。由于机载传感器的数据是通过串口的形式发送到 Pi 中的,所以在此处定义的发布方法都是将 diablo_ctrl_node 的指针作为参数,进行数据的发布,并没有创建新的 node 。因此,文件中的构建的方法都需要在 diablo_ctrl.cpp 中进行调用才会工作。

机器人电池信息 : 1Hz

机器人状态信息 : 10Hz

机器人陀螺仪信息 : 50Hz

机器人关节电机信息 : 10Hz

传感器的消息输出

在这里是机器人的遥测消息的发送

看这个是通讯协议的打包

文件头在这里

这个就是串口的协议一个打包样子

四元数

加速度的

电池的一些消息

左右的6个电机

RC接收机的全部通道

陀螺仪的一种消息输出

输出的消息频率

这个就是电池的消息的一个组装

上面的遥测消息的发送,但是内部的消息打包会到最上面的通讯处理

机器人的状态

姿态的四元数表达

对于单电机的状态消息

加速度计

陀螺仪

四元素

关节电机的消息输出

这么晚了。。。睡觉了,不写了

代码语言:javascript复制
https://docs.ros2.org/latest/api/rclpy/index.html
代码语言:javascript复制
https://github.com/ros2/cookbook
代码语言:javascript复制
https://docs.ros.org/en/rolling/Tutorials/Beginner-Client-Libraries/Writing-A-Simple-Cpp-Service-And-Client.html
代码语言:javascript复制
https://docs.ros.org/en/rolling/Tutorials/Beginner-Client-Libraries/Writing-A-Simple-Cpp-Publisher-And-Subscriber.html
代码语言:javascript复制
https://docs.ros2.org/latest/api/rclcpp/
代码语言:javascript复制
https://github.com/ros2/rclpy
代码语言:javascript复制
https://github.com/ros2/rclcpp
代码语言:javascript复制
http://www.uml.org.cn/ai/202204224.asp
代码语言:javascript复制
https://diablo-sdk-docs.readthedocs.io/zh_CN/latest/pages/Installation/installing-ros-packages.html
代码语言:javascript复制
http://docs.ros.org/en/humble/Installation/RHEL-Install-RPMs.html
代码语言:javascript复制
http://wiki.ros.org/noetic/

0 人点赞