郑州好的网站建设公司,wordpress后台系统,网站建设用户体验,学习网站建设要报班吗1.ros_control简介
ros_control - ROS Wiki
ros_control是为ROS提供的机器人控制包#xff0c;包含一系列控制器接口、传动装置接口、控制器工具箱等,有效帮助机器人应用功能包快速落地#xff0c;提高开发效率。
2.ros_control框架 ros_control总体框架#xff1a; 针对…1.ros_control简介
ros_control - ROS Wiki
ros_control是为ROS提供的机器人控制包包含一系列控制器接口、传动装置接口、控制器工具箱等,有效帮助机器人应用功能包快速落地提高开发效率。
2.ros_control框架 ros_control总体框架 针对不同类型的机器人哨兵小车机械臂等ros_control提供了多种类型控制器这些控制器的接口各不相同。ros_control提供了一个硬件抽象层用来提高代码的复用率负责机器人硬件资源管理控制器从抽象层请求资源不直接接触硬件。 ros_control的数据流图 1.控制器管理器Controller Manager 每个机器人有一个或多个控制器控制器管理器提供了通用接口来管理不同的控制器。控制器管理器的输入就是ROS上层应用功能包的输出。 2.控制器Controller 控制器可以完成每个joint控制读取硬件资源接口状态再发布控制命令提供PID控制器。 3.硬件资源Hardware Resource 为上下两层提供硬件资源接口。 4.机器人硬件抽象RobotHW 机器人硬件抽象和硬件资源通信通过write和read方法完成硬件操作包含关节约束、力矩转换、状态转换等功能。 5.真实机器人Real Robot 真实机器人上需要有自己的嵌入式控制器将接收到的命令反映到执行器上例如接收到旋转90°的命令后就需要让执行器快速、稳定地旋转90°。 3.控制器 ros_controllers功能包提供了许多控制器 创建自己的控制器 controller_interface · ros-controls/ros_control Wiki (github.com) ros_controllers和ros_control之间的多种控制接口: 4.硬件接口 硬件接口是控制器和RobotHW沟通的接口基本与控制器的种类相对应 创建自己的硬件接口 hardware_interface · ros-controls/ros_control Wiki (github.com) 5.传动系统Transmission 传动系统可以将机器人的关节指令转换成执行器的控制信号。机器人每个需要运动的关节都需要配置相应的传动系统可以在机器人的URDF模型文件中配置 urdf/XML/传输 - ROS Wiki 6.关节约束(Joint Limits) 关节约束是硬件抽象层中的一部分维护一个关节约束的数据结构这些约束数据可以从机器人的URDF文件中加载、可以在ROS的参数服务器上加载需要先用YAML配置文件导入ROS参数服务器包含了关节速度、位置、加速度、加加速度、力矩等约束还包含了其安全作用的位置软限位、速度边界k_v和位置边界k_p等。 URDF文件中设置Joint Limits参数 joint_limits_interface · ros-controls/ros_control Wiki (github.com) 7.控制器管理器controller_manager
控制器管理器提供了一种多控制器控制的机制实现控制器的加载、运行启动、运行停止、卸载等多种操作。 控制器的状态跳转 1.命令行工具
1.controller_manager命令格式
rosrun controller_manager controller_manager command controller_name
支持的command:
·load:加载一个控制器。
·unload:卸载一个控制器。
·start:启动控制器。
·stop:停止控制器。
·spawn:加载并启动一个控制器。
·kill:停止并卸载一个控制器。
2.查看控制器状态命令
rosrun controller_manager controller_manager command
支持的command:
·list:根据执行顺序列出所有控制器并显示每个控制器的状态。
·list-types:显示所有控制器的类型。
·reload-libraries:以插件的形式重载所有的控制器的库不需要重新启动方便对控制器的开发和测试。
·reload-libraries--restore:以插件的形式重载所有控制器的库并恢复到初始状态。
3.spawner命令
spawner命令是用于一次控制多个控制器,可以自动加载、启动控制器加上--stopped参数控制器就只会被加载不会运行
rosrun controller_manager spawner [--stopped] name1 name2 name3
4.unspawner
unspawner命令用于停止一系列控制器但不需要卸载
rosrun controller_manager unspawner name1 name2 name3
2.launch工具
launch文件运行controller_manager命令,加载、启动控制器
launchnode pkgcontroller_manager typespawner argscontroller_name1 controller_name2/
/launch
加载不启动
launchnode pkgcontroller_manager typespawner args--stopped controller_name1 controller_name2/
/launch
3.rqt_controller_manager可视化工具
rosrun rqt_controller_manager rqt_controller_manager