TurtleBot的机器人操作系统ROS, 开源了!!github开源排名很高
Turtlebot3 的 ROS 软件包
源代码:
http://www.gitpp.com/goldenbear/turtlebot3
【文生图】人工智能配图,与项目无关
TurtleBot3是一款小型、低成本、完全可编程的移动机器人,它基于ROS(Robot Operating System)开发,并继承了TurtleBot系列的优秀特性。作为TurtleBot系列的第三代产品,TurtleBot3在二代的基础之上做了一些改进,并增加了一些新功能以满足用户的需求。
这款机器人的主要特点包括开源ROS软件、硬件开源、小尺寸、低价格、模块化驱动以及强大的扩展性。它配备了强悍的传感器,如激光雷达和摄像头,使其具有自主导航、避障、物体识别等功能。此外,TurtleBot3还支持语音识别和语音合成技术,可以与人进行自然语言交互,完成特定任务。
TurtleBot3的目标是在不牺牲功能和质量的情况下,大幅缩小平台的大小和降低价格。它提供了多种定制化的选择,包括不同的底盘、计算机和传感器,以满足用户多样化的需求。同时,它还支持搭载机械手,如OpenManipulator,以扩展其应用范围。
在教育领域,TurtleBot3可以作为一个优秀的教学平台,帮助学生更好地理解和学习机器人技术。对于研究人员来说,它可以作为一个灵活的研究工具,用于测试新的算法和技术。此外,由于其低成本和可扩展性,TurtleBot3还非常适合作为产品原型开发的平台。
总的来说,TurtleBot3是一款功能强大、灵活多变的移动机器人,适用于教育、研究、产品原型和爱好应用等多种场景。
更牛的, 人形机器人 【很丑,但是开源、研究、学习,足够了】
源代码
http://www.gitpp.com/goldenbear/robotis-op3
ROBOTIS OP3 是 ROBOTIS 最新的微型人形机器人平台,继承了 ROBOTIS OP(又名“DARWIN OP”)和 ROBOTIS OP2(又名“DARWIN 2”或“DARWIN OP2”)。ROBOTIS OP3 的显着变化之一是执行器方面,用 XM-430 执行器替换 MX-28 执行器。另一个重大变化是内部 PC 也发生了变化,将基于 Atom 的 SBC(单板计算机)替换为基于 Intel i3 的 NUC。通过支持 DYNAMIXEL 协议 2.0 的 XM-430,OP3 提高了扭矩以及基于电流的控制,并加载了各种功能。英特尔 NUC 可大幅提升计算能力,支持 64 位操作系统和蓝牙 4.1。此外,OP3是在ROS(机器人操作系统)下开发的,以利用ROS生态系统中的各种软件包。与之前的机器人相比,所有这些硬件改进和 ROS 支持使开发人员能够更加专注于研发。
·
与 ROBOTIS OP2 的物理差异
·
·
§
ROBOTIS OP3 不附带设计皮肤,但是提供了 3D 建模文件以支持默认设计皮肤的 3D 打印。
§
OP3 看起来与 OP2 有很大不同,因为没有提供默认皮肤。用户可以下载设计皮肤文件。
下载的皮肤文件可用于3D打印。
ROBOTIS OP3装载Intel NUC
i3处理器,实现计算能力的显着提升。
OP3 支持 HDMI 和 Display Port(DP),而 OP2 仅支持 mini HDMI。
OP3背面有1个RGB LED和3个LED,4个按钮。从左到右,每个按钮分别代表模式、启动、用户、重置。
·
以下是一些机械差异:
·
·
OP3的后面板进行了适度的改动。
·
§
ROBOTIS OP2 上的新型迷你 HDMI 端口连接器
§
§
港口位置
§
§
ROBOTIS OP3 不再具有 3.5 毫米麦克风和音频插孔
§
·
与 ROBOTIS OP2 相比,使用
ROBOTIS OP3 进行开发的优势
如上所述,OP3 有几处变化,新 OP3 的优势如下:
·
§
新执行器(更高扭矩)
§
§
SSD容量增加
§
§
增加RAM容量
§
§
计算能力的显着提高
§
§
用 HDMI 替代 Mini HDMI
§
§
用户友好的子控制器(CM-730 →
OpenCR)
§
§
改进的相机
§
·
硬件规格比较
·
|
机器人OP2
|
机器人OP3
|
执行器
|
MX-28
|
XM430-W350
|
中央处理器
|
英特尔凌动 N2600
@1.6GHz 双核
|
英特尔酷睿 i3 处理器
双核
|
内存
|
2GB DDR3
SODIMM 1066MHz
(用户可更换)
|
8GB DDR4
SODIMM 2133MHz
(最大 32GB)
(用户可更换)
|
贮存
|
半尺寸 mSATA 模块 (32GB)
(用户可更换)
|
M.2 SSD 模块 (128GB)
(用户可更换)
|
兼容操作系统
|
任何 Linux 版本(32 位)
任何 Windows 版本(32 位)
|
任何 Linux 版本(32 位/64 位)
任何 Windows 版本(32 位/64 位)
|
联网
|
Realtek
10/100/1000 Mbps 以太网
802.11n(仅限 2.4GHz)
|
英特尔 10/100/1000 Mbps 以太网
802.11ac(2.4GHz、5GHz)
蓝牙 4.1
|
相机
|
罗技 C905 (1600x1200)
|
罗技 C920 (1920x1080)
|
ROBOTIS OP3 是一款经济实惠的微型人形机器人平台,具有先进的计算能力、精密的传感器、高负载能力和动态运动能力,可实现许多令人兴奋的研究和教育活动。
·
执行器规格比较
·
|
MX-28
|
XM430-W350
|
重量
|
77克
|
82克
|
方面
|
35.6毫米×50.6毫米×35.5毫米
|
28.5毫米×46.5毫米×34.0毫米
|
齿轮比
|
193:1
|
353.5:1
|
堵转转矩
|
2.5牛米
|
4.1牛米
|
失速电流
|
1.4A
|
2.3A
|
空载速度
|
55转/分
|
46转/分钟
|
协议
|
仅 1.0
|
1.0、2.0
|
·
XM430系列执行器更易于组装和维护,并且支持多种控制算法。
·
§
减小尺寸并增加扭矩
§
§
带有集成装配螺栓丝锥的金属外壳
§
§
带电缆盖的中空后壳
§
§
6种操作模式
§
§
基于电流的扭矩控制
§
§
用于平滑运动规划的轮廓控制
§
·
ROBOTIS-OP3 规格
·
|
机器人OP3
|
高度
|
约510毫米
|
重量
|
约3.5kg(不含皮套)
|
自由度
|
20
|
执行器
|
XM430-W350-R
|
主控制器
|
INTEL NUC
i3
英特尔酷睿 i3 处理器双核
8GB RAM DDR4 SODIMM 2133MHz
128GB M.2 SSD
|
子控制器
|
开放式CR
|
相机
|
罗技 C920 HD Pro 网络摄像头
|
IMU传感器
|
3 轴陀螺仪、3 轴加速度计、3 轴磁力计
|
电池
|
锂电池 3 芯 11.1v 1800mA
|
IO设备
|
RGB LED x 1、LED x 3(红、绿、蓝)、按钮 x 4、扬声器 x 1
|
可安装操作系统
|
任何 Linux 版本(32 位/64 位)
任何 Windows 版本(32 位/64 位)
|
开发
环境
|
操作系统:Linux(64位)
C++、ROS、DYNAMIXEL SDK
|
安全信息
注意:对于因用户疏忽或误用产品而造成的任何损失或损坏,ROBOTIS 不承担任何责任。
·
开始之前请仔细阅读说明。
·
·
不适合 15 岁以下儿童。
·
·
请勿使用套件中提供的工具以外的任何其他工具。
·
·
机器人工作时,请让机器人远离您的脸部和身体。
·
·
防止手指卡在框架之间。
·
·
请勿将机器人放置在水、热源或火附近。
·
·
仅使用套件中包含的电池和充电器。
·
·
长时间过度使用后必须更换齿轮。
·
包装内容
检查您的
ROBOTIS OP3 包装中是否有以下物品。
不
|
物品
|
数量
|
1
|
完全组装好的 ROBOTIS OP3 机器人
|
1
|
2
|
USB 拇指驱动器(带恢复软件)
|
1
|
3
|
保险丝
|
2
|
4
|
球
|
1
|
5
|
快速入门手册
|
1
|
6
|
备用电缆
|
1 包
|
7
|
乐泰
|
1
|
8
|
扳手和螺丝刀
|
1套
|
9
|
电源线
|
1
|
10
|
直流电源
|
1
|
11
|
备用螺栓和螺母
|
1 包
|
12
|
以太网电缆
|
1
|
13
|
充电器
|
1
|
14
|
电池组
|
3
|
15
|
硬盒
|
1
|
布局
注意:前面板和后面板的布局可能会根据所选内置 PC 的不同而有所变化。
给电池充电
本节介绍如何使用提供的充电器为电池充电。
根据提供的充电器使用任一说明。
使用LBC-010
ROS应用程序接口
·
订阅主题
/robotis/action/page_num
( std_msgs/Int32 )
要在模块中运行的操作的页码。
1 ~ 255:播放动作
-1:停止动作
-2:刹车动作
·
·
已发布主题
/robotis/status
( robotis_controller_msgs/StatusMsg )
描述
action_module 状态的消息。
·
·
服务
/robotis/action/is_running
( op3_action_module_msgs/IsRunning )
检查操作是否正在运行的服务。
·
参数
/action file path
(字符串,默认值:“op3_action_module/data/motion_4,095.bin”)
指示 OP3 动作库位置的文件路径。
op3_base_模块
概述
op3_base_module
是初始姿势的模块。
该模块被编译为要在[op3_manager]中使用的库。
入门
·
下载并构建
·
参考:安装 ROBOTIS ROS 软件包
·
·
用途
运动模块以库的形式在管理器中使用。
·
参考:创建新的机器人管理器
·
ROS应用程序接口
·
订阅主题
/robotis/base/ini_pose
( std_msgs/String )
此消息将使
OP3 采取初始姿势(即使基本模块处于非活动状态,此命令也有效)。
·
·
已发布主题
/robotis/enable_ctrl_module
( std_msgs/String )
此消息激活op3_base_module
以采取初始姿势。
·
/robotis/status
( robotis_controller_msgs/StatusMsg )
此消息通知 的状态op3_base_module
。
·
数据
·
初始姿势
·
·
数据文件路径:/op3_base_module/data/ini_pose.yaml
·
·
YAML 格式
·
§
mov_time : 移动到目标点的预计时间(单位为秒)
§
§
via_num : 航点数量
§
§
via_time :航路点之间的估计时间(数组结构)
§
§
via_pose :每个路点的每个关节的角度(单位为度,数组结构)
§
§
tar_pose :初始姿势的目标关节角度
§
op3_head_control_模块
概述
本章介绍控制 OP3 头的模块。
该模块被编译为要在[op3_manager]中使用的库。
入门
·
下载并构建
·
参考:安装 ROBOTIS ROS 软件包
·
·
用途
运动模块以库的形式在管理器中使用。
·
参考:创建新的机器人管理器
·
ROS应用程序接口
·
订阅主题
/robotis/head_control/scan_command
( std_msgs/String )
此消息将请求环视头部运动以扫描环境。
·
/robotis/head_control/set_joint_states
( sensor_msgs/JointState )
头部关节将旋转到消息中写入的相应角度。
·
/robotis/head_control/set_joint_states_offset
( sensor_msgs/JointState )
头部关节将根据消息中写入的偏移值调整角度。
·
·
已发布主题
/robotis/status
( robotis_controller_msgs/StatusMsg )
此消息通知
head_control_module 的状态。
·
op3_walking_模块
概述
本章介绍控制 OP3 行走的模块。
该模块被编译为要在[op3_manager]中使用的库。
入门
·
下载并构建
·
参考:安装 ROBOTIS ROS 软件包
·
·
用途 运动模块以库的形式在管理器中使用。
·
参考:创建新的机器人管理器
·
ROS应用程序接口
·
订阅主题
/robotis/walking/command
( std_msgs/String )
此消息请求开始和停止行走。
·
/robotis/walking/set_params
( op3_walking_module_msgs/WalkingParam )
该消息设置步行所需的参数。有关详细信息,请参阅WalkingParam.msg。
·
·
已发布主题
/robotis/status
( robotis_controller_msgs/StatusMsg )
此消息通知
op3_walking_module 的状态。
·
·
服务
/robotis/walking/get_params
( op3_walking_module_msgs/GetWalkingParam )
该服务获取行走参数。
·
参数
/walking_param_path
(字符串,默认值:“op3_walking_module/config/param.yaml”)
指示行走参数位置的文件路径。
数据
·
行走参数
·
·
数据文件路径:/op3_walking_module/config/param.yaml
·
·
YAML 格式
·
§
x_offset:x方向(前后)的偏移量[m]
§
§
§
y_offset:y方向(左右)的偏移量[m]
§
§
§
z_offset:z方向(上下)的偏移量[m]
§
§
§
roll_offset:滚动偏移(x 坐标)[度]
§
§
§
itch_offset:音高偏移(y 坐标)[度]
§
§
§
yaw_offset:偏航偏移(z 坐标)[度]
§
§
§
hip_pitch_offset:髋部水平的俯仰偏移(y 坐标)。这些值适用于髋关节俯仰关节的 DYNAMIXEL 位置值。[程度]
§
§
§
period_time:ROBOTIS-OP3 完成两个完整步骤(左脚和右脚)所需的时间 [ms]
§
§
§
dsp_ratio:双脚着地的时间与行走周期的时间比。
§
§
§
foot_height:步行时脚部高度[米]
§
§
§
swing_right_left:行走期间向左或向右摆动[m]
§
§
§
swing_top_down:行走时身体上下摆动[m]
§
§
§
pelvis_offset:骨盆水平的滚动偏移(x 坐标)。这些值适用于髋部滚动关节的 DYNAMIXEL 位置值 [度]
§
§
§
arm_swing_gain:相对于前进/后退的手臂摆动增益。如果左脚向前移动,则右臂摆动。
§
§
Balance_hip_roll_gain:相对于陀螺仪滚动的增益
§
§
Balance_knee_gain:相对于陀螺仪俯仰的增益
§
§
Balance_ankle_roll_gain:相对于陀螺仪滚动的增益
§
§
Balance_ankle_pitch_gain:相对于陀螺仪俯仰的增益
§
§
p_gain:尚未实现
§
§
i_gain:尚未实现
§
§
d_gain:尚未实现
§
op3_online_walking_module
概述
本章介绍控制OP3行走的模块。
该模块被编译为要在[op3_manager]中使用的库。
在线行走算法在本书(人形机器人简介)中有描述。
入门
·
下载并构建
·
参考:安装 ROBOTIS ROS 软件包
·
·
用途 运动模块以库的形式在管理器中使用。
·
参考:创建新的机器人管理器
·
ROS应用程序接口
·
订阅主题
/robotis/online_walking/reset_body
( std_msgs/Bool )
此消息会将身体姿势重置为默认值。
·
/robotis/online_walking/goal_joint_pose
( op3_online_walking_module_msgs/JointPose )
该消息将在关节空间中设置所需的姿势。
·
/robotis/online_walking/goal_kinematics_pose
( op3_online_walking_module_msgs/KinematicsPose )
该消息将在任务空间中设置所需的姿势。
·
/robotis/online_walking/foot_step_command
( op3_online_walking_module_msgs/FootStepCommand )
该消息将设置步行命令。
·
/robotis/online_walking/foot_step_command
( op3_online_walking_module_msgs/FootStepCommand )
该消息将执行所需的步行性能。
·
/robotis/online_walking/walking_param
( op3_online_walking_module_msgs/WalkingParam )
该消息将设置步行参数。
·
/robotis/online_walking/body_offset
( geometry_msgs/Pose )
该消息将设置所需的身体偏移。
·
/robotis/online_walking/foot_distance
( std_msgs/Float64 )
此消息将设置左脚和右脚之间所需的脚距。
·
/robotis/online_walking/footsteps_2d
( op3_online_walking_module_msgs/Step2DArray )
此消息将从脚步生成器设置所需的脚步。
·
·
已发布主题
/robotis/status
( robotis_controller_msgs/StatusMsg )
此消息通知
head_control_module 的状态。
·
/robotis/movement_done
( std_msgs/String )
此消息通知移动结束。
·
/robotis/pelvis_pose
(geometry_msgs/PoseStamped)
此消息发送所需的骨盆姿势以进行定位。
·
·
服务服务器
/robotis/online_walking/get_joint_pose
( op3_online_walking_module_msgs/GetJointPose )
该服务用于获取当前所需的关节姿势。
·
/robotis/online_walking/get_kinematics_pose
( op3_online_walking_module_msgs/GetKinematicsPose )
该服务用于获取当前所需的运动学姿势。
·
·
服务客户端 /robotis/online_walking/get_preview_matrix
( op3_online_walking_module_msgs/GetPreviewMatrix )
该服务用于计算在线步行的矩阵。
·
op3_direct_control_模块
概述
本章介绍直接控制
ROBOTIS-OP3 关节的模块。
入门
·
下载并构建
·
参考:安装 ROBOTIS ROS 软件包
·
·
用法
运动模块在管理器中以lib的形式使用。
·
参考:创建新的机器人管理器
·
ROS应用程序接口
·
订阅主题
/robotis/direct_control/set_joint_states
( sensor_msgs/JointState )
包含用户想要移动的关节值的消息。
·
·
已发布主题
/robotis/status
( robotis_controller_msgs/StatusMsg )
描述
action_module 状态的消息。
·
参数
/robotis/direct_control/default_moving_time
(double, 默认值: 0.5)
移动到目标位置的最短时间
/robotis/direct_control/default_moving_angle
(double, 默认值: 30)
每 1 秒移动到目标位置的角度
/robotis/direct_control/check_collision
(bool, 默认值: true)
启用伪自碰撞检查
op3_tuning_模块
概述
本章介绍用于偏置和增益调整的模块。
入门
·
下载并构建
·
参考:安装 ROBOTIS ROS 软件包
·
·
用法
运动模块在管理器中以lib的形式使用。
·
参考:创建新的机器人管理器
·
ROS应用程序接口
·
订阅的主题
/robotis/tuning_module/tuning_pose
( std_msgs/String )
用于更改增益调整姿势的消息
/robotis/tuning_module/joint_offset_data
( op3_tuning_module_msgs/JointOffsetData )
用于更改偏移的消息
/robotis/tuning_module/joint_gain_data
( op3_tuning_module_msgs/JointOffsetData )
用于更改增益的消息
/robotis/tuning_module/torque_enable
( op3_tuning_module_msgs/JointTorqueOnOffArray )
用于 en 的消息/禁用关节扭矩
/robotis/tuning_module/command
( std_msgs/String )
命令消息(例如保存增益、保存偏移)
·
·
已发布主题
/robotis/status
( robotis_controller_msgs/StatusMsg )
描述
action_module 状态的消息。
/robotis/enable_ctrl_module
( std_msgs/String )
用于更改
robots_controller 运动模块的消息
/robotis/sync_write_item
([robotis_controller_msgs/SyncWriteItem]{:
.popup})
用于在
robots_controller 中与 dynamixel 同步写入的消息
/robotis/enable_offset
( std_msgs/Bool )
用于在
robots_controller 中打开/关闭偏移的消息
·
·
服务服务器
/robotis/tuning_module/get_present_joint_offset_data
( op3_tuning_module_msgs/GetPresentJointOffsetData )
用于通知关节状态(包括偏移量)的服务
·
·
服务客户端
/robotis/set_present_ctrl_modules
(robotis_controller_msgs/SetModule)
用于更改robotis_controller运动模块的服务
/robotis/load_offset
(robotis_controller_msgs/LoadOffset)
用于在robotis_controller中应用新偏移的服务
·
参数
offset_file_path
(字符串,默认值~/data/tune_pose.yaml
:)
此路径指示包含每个关节的偏移数据的文件的位置。
init_file_path
(string, default : ~/data/offset.yaml
)
该路径表示包含每个关节初始化信息的文件的位置
传感器模块
更牛的, 人形机器人 【很丑,但是开源、研究、学习,足够了】
源代码
http://www.gitpp.com/goldenbear/robotis-op3
出自:https://mp.weixin.qq.com/s/p7gkpOK7gjDuiXx2mZnmsQ