人工智能技术的飞速进步正引领机器人行业经历一场革命。人工智能与机器人的深度融合,推动机器人从简单的自动化工具转变为拥有感知智能和自主决策能力的具身智能体。多模态大模型的引入更是极大增强了机器人的自主学习和适应复杂环境的能力,使其在多样化的应用场景中表现更加卓越。
在市场对效率和成本效益的双重驱动下,基于硬件繁复叠加的传统机器人开发模式逐步被企业摒弃,更符合高效率和高性价比期待的集成化解决方案慢慢进入了机器人厂商的视线。
搭载阿加犀融合架构操作系统平台AidLux的高通开发板,不仅能够满足智能机器人的Android人机交互需求,还能高效集成AI视觉分析、端侧大模型部署、运动控制以及ROS等关键机器人技术模块,使得机器人项目的开发和部署更加高效、便捷,同时也更加用户友好。
融合系统架构
在2024高通边缘智能创新应用大赛中,我们特别设立智能机器人赛道,并提供了两款基于高通平台的高性能开发板以及一系列专业技术培训,使更多开发者能够亲身体验到阿加犀技术与高通硬件相结合所带来的强大优势,从而加速智能机器人项目的落地和实施。
以机械臂仿真实训为例,培训课程通过阿加犀AidLux和边缘智能工具链进行了开发部署演示,最终在基于高通平台的物联网开发板上快速构建了一个机械臂定位抓取系统,不仅能够精准识别和定位物体,还能实现语音控制机械臂执行抓取任务。
机器人开发环境配置
01 安装ROS/ROS2
在AidLux应用中心下载
02 安装Xfce4,显示渲染图形
Xwayland: 在HDMI显示或者adb拷屏显示下可用,网页版不可用
VNC: 需要在投屏的设备上(比如PC)下载VNC软件如RealVNC,在软件中输入列出的“IP地址:端口号”
03 安装Gazebo仿真工具
安装:sudo apt install gazebo11
运行:gazebo创建虚拟的仿真环境
04 安装RViz可视化开发工具
运行方式:ROS1需要在一个终端运行roscore,然后另一个终端运行rviz;ROS2可以直接在终端运行rviz2。
可视化ROS数据(调试机器人传感器信息、状态和环境模型)
05 安装MoveIt
安装方式:
sudo apt install ros-noetic-moveit (根据版本不同修改版本号)
运行方式:MoveIt拥有与RViz集成的多个插件,可以直接在Rviz中运行,也可以与MoveIt提供的API接口与真实机器人结合,实现对机械臂的控制。
roslaunch moveit_setup_assistant setup_assistant.launch (setup assistant 用于导入机械臂模型与相关文件配置)
用于机器人运动规划、控制和仿真的一体化软件框架
ROS开发流程
01 创建工作空间
创建一个工作空间目录,例如 ~/catkin_ws。然后进入工作空间,并使用 catkin_make 初始化,这一步类似于为机器人开发项目创建一个专属的工作区域,确保所有文件都在一个有组织的地方。
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
02 创建功能包
进入src目录,创建一个新的功能包,这一步就像在项目中创建一个子模块,每个模块负责实现特定的功能,例如控制机器人运动、处理传感器数据等。
cd ~/catkin_ws/src
catkin_create_pkg turtlesim_circle roscpp rospy std_msgs geometry_msgs
03 编写节点代码
在 my_robot_pkg/src 目录下新建你的节点代码文件,如 my_node.cpp(C++) 或 my_node.py(Python),这一步类似于编写某个功能下的各个组件,每个节点(组件)执行特定任务,例如读取分析传感器数据、控制电机等。
04 编译工作空间
将源代码转换为机器可执行的二进制文件。对于C++代码需要编译,但Python代码不需要编译。CMakeLists.txt 是一个用于CMake构建系统的配置文件。CMake是一种跨平台的编译工具,帮助开发者自动化生成构建文件,例如Makefile或项目文件。CMakeLists.txt文件定义了如何构建你的项目,包括源文件、依赖库和目标等。一般是自动生成,可根据需求自行修改。
cd ~/catkin_ws
catkin_make
05 配置环境
编译成功后,执行:
source ~/catkin_ws/devel/setup.bash
这会将工作空间添加到ROS环境中。
06 运行节点
使用 rosrun 或 roslaunch 运行节点
rosrun turtlesim_circle turtle_circle
roslaunch turtlesim_circle turtle_circle.launch
其中rosrun命令用于运行某个特定包中的单个ROS节点。roslaunch命令用于启动一组ROS节点,并可以通过launch文件(.launch)配置节点参数、节点依赖关系、启动顺序等,相比rosrun更灵活。
使用MoveIt开发机械臂
01 运行 MoveIt Setup Assistant 并创建新的MoveIt配置包
roslaunch moveit_setup_assistant setup_assistant.launch
02 导入MoveIt示例机械臂配置文件选择配置文件
/opt/ros/noetic/share/franka_description/robots/panda/panda.urdf.xacro
设置文件参数 hand:=true选择 Load Files 加载机械臂文件
03 自碰撞检查
通过调整采样密度和碰撞对的最小碰撞率,可以生成碰撞矩阵,显示机器人各部分之间的碰撞情况。绿色表示安全,红色表示碰撞,蓝色表示可以忽略的碰撞对,帮助提高运动规划的效率。
04 定义虚拟关节
为机器人指定其在世界坐标系中的位置或将其置于移动平台上。输入虚拟关节的名称、子链接和父框架,并选择关节类型(例如固定或浮动)来完成设置。
05 定义规划组
定义规划组(Planning Groups),它们是基于关节、链接和运动链的集合,用于规划和碰撞检测。每个规划组代表机器人的一个部分,例如“panda_arm”和“hand”,其中包含相应的关节和链接。定义这些组有助于在运动规划中明确哪些部分需要考虑和控制,从而优化机器人的运动表现。
06 定义机械臂特定的姿态
这些姿态由某个规划组的关节值集合构成。你可以命名姿态并选择相应的规划组,然后通过调整滑块设置每个关节的具体位置。这些姿态可以用于机器人初始化位置和特定任务的预定义位置,从而简化和加快运动规划。
07 定义末端执行器
为机器人定义末端执行器(End Effectors),如抓手或工具。需要输入末端执行器的名称,选择对应的规划组和父链接(通常是机器人的末端部分)。定义末端执行器有助于在运动规划中准确控制和使用机器人的末端工具,从而完成各种任务。
08 定义机器人的被动关节
即不由电机驱动或不需要主动控制的关节。通过将关节从左侧的“Active Joints”列表移动到右侧的“Passive Joints”列表,可以指定哪些关节是被动的。这一步有助于在运动规划中准确识别和处理这些关节,避免不必要的控制计算。
09 配置控制器
控制器用于操作机器人的物理硬件,实际执行规划的运动轨迹。为新控制器指定名称和类型,然后添加相关的关节或规划组,使其能够控制特定的机器人部分。
10 配置3D感知传感器
配置3D感知传感器,使其与MoveIt一起工作。这些传感器可以帮助机器人感知周围环境,从而进行物体识别、避障和导航等任务。可以选择和配置不同类型的3D传感器插件,以便在机器人应用中使用3D感知功能。
11 生成配置文件包
这些文件包包含了运行MoveIt所需的所有配置文件,包括机械臂配置文件、控制器配置文件、运动规划配置文件、传感器配置文件、启动文件等等。路径选择自己建立的工作空间中的src文件夹中的功能包文件夹,比如 /home/aidlux/test_ws/src/panda_test 。
12 编译生成的文件包并配置环境
cd ~/test_ws
catkin_make
source ~/test_ws/devel/setup.bash
13 在Rviz中进行机械臂仿真
roslaunch panda_test demo.launch
14 编写代码控制机械臂
mkdir ~/test_ws/src/panda_test/scripts
touch move_arm.py
编写一段简单的机械臂随机运动代码:
chmod +x move_arm.py
运行:
roslaunch panda_test demo.launch
python3 move_arm.py
实机演示效果
视觉定位抓取
语音控制执行抓取任务
在高性能SoC和阿加犀底层技术的加持下,更高维度集成化、智能化机器人解决方案逐步落地,该方案不仅满足了机器人在复杂功能性和可靠性方面的高标准要求,同时也在成本控制方面实现了优化,使得机器人制造商能够在激烈的市场竞争中占据有利地位。
随着技术的不断成熟和市场的持续扩张,该方案正在成为推动智能机器人应用无处不在的关键力量,从家庭生活到医疗保健,从服务业到制造业,为人们的日常生活和生产活动带来前所未有的便利和效率!
如果您对智能机器人解决方案感兴趣,并希望了解更多相关信息或寻求合作机会,欢迎联系我们。
2024高通边缘智能创新应用大赛智能机器人赛道技术培训可移步AidLux视频号查看直播回放。