所谓才华,就是基本功的溢出。所谓自信,不过是基本功的反复练习。 基本功
要以匠人的心态,把每件小事都做到极致,就是基本功。行动有规划,事事有结果,件件有回音(就像我之前说的,做一个让别人放心的人),这也是基本功。
大家可能没有见过开关的位置
还有可爱的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/