当前位置: 首页 > wzjs >正文

常见的跨境电商平台有哪些?免费网站排名优化在线

常见的跨境电商平台有哪些?,免费网站排名优化在线,网络营销整体外包,十堰h5响应式网站ROS2_control 对机器人控制 安装与介绍安装介绍 使用gz 中写法.yaml文件中写法type: joint_state_broadcaster/JointStateBroadcaster的来源 命令接口关节控制command_interfacetransmission CMakelist.txt与package.xml文件 gz_ros2_control与自定义插件例子描述自定义插件使用…

ROS2_control 对机器人控制

  • 安装与介绍
    • 安装
    • 介绍
  • 使用
    • gz 中写法
    • .yaml文件中写法
      • type: joint_state_broadcaster/JointStateBroadcaster的来源
    • 命令接口关节控制
      • command_interface
      • transmission
    • CMakelist.txt与package.xml文件
  • gz_ros2_control与自定义插件
    • 例子描述
    • 自定义插件使用

安装与介绍

安装

sudo apt install ros-humble-ros2-control
sudo apt install ros-humble-ros2-controllers
# 会提示安装好其他相应的东西
# 本来应该还要有ros-humble-gz-ros2-control,但是直接安装提示定位不到

介绍

在这里插入图片描述

ros2 control --help# 输出
Commands:list_controller_types         输出可用的控制器类型及其基类list_controllers              输出已加载控制器的列表、类型和状态list_hardware_components      输出可用硬件组件列表list_hardware_interfaces      输出可用命令和状态接口列表load_controller               在控制器管理器中加载控制器reload_controller_libraries   重新加载控制器库set_controller_state          调整控制器的状态set_hardware_component_state  调整硬件组件的状态switch_controllers            在控制器管理器中切换控制器unload_controller             在控制器管理器中卸载控制器view_controller_chains        将加载的链式控制器的图表生成到/tmp/controller_digram.gv.pdf中

在这里插入图片描述

使用

基本上就是写三个地方吧。
在这里插入图片描述
在github找到gz_ros2_control_demos这一栏的例子照着写就很舒服了,因为humble的例子还是和gazebo11版本使用,到ubuntu24.04才会完全使用ros2 和 gz sim版本联合,所以我在ubuntu 22.04下使用ros2 humble 和gazebo harmonic也是照着这个jazzy和harmonic的例子用了。
gz_ros2_control

gz 中写法

    <ros2_control name="FishBotGazeboSystem" type="system"><hardware><plugin>gazebo_ros2_control/GazeboSystem</plugin></hardware><joint name="left_wheel_joint"><command_interface name="velocity"><param name="min">-1</param><param name="max">1</param></command_interface><command_interface name="effort"><param name="min">-0.1</param><param name="max">0.1</param></command_interface><state_interface name="position" /><state_interface name="velocity" /><state_interface name="effort" /></joint><joint name="right_wheel_joint"><command_interface name="velocity"><param name="min">-1</param><param name="max">1</param></command_interface><command_interface name="effort"><param name="min">-0.1</param><param name="max">0.1</param></command_interface><state_interface name="position" /><state_interface name="velocity" /><state_interface name="effort" /></joint></ros2_control><!-- gz块是为了映射到gz仿真环境中 --><plugin filename="libgazebo_ros2_control.so" name="gazebo_ros2_control"><!-- parameters对应的是.yaml文件中相关的东西 --><parameters>$(find fishbot_description)/config/fishbot_ros2_controller.yaml</parameters><!--<ros><remapping>/fishbot_diff_drive_controller/cmd_vel_unstamped:=/cmd_vel</remapping><remapping>/fishbot_diff_drive_controller/odom:=/odom</remapping></ros>--></plugin>

< ros2_control>项要写在机器人模型文件中,也就是启动时的描述文件,这里就是在机器人xacro描述文件中判断使用gazebo11、gz、实物的ros2_control写法
在这里插入图片描述

<!-- gazebo11 -->
<ros2_control name="GazeboSystem" type="system"><hardware><plugin>gazebo_ros2_control/GazeboSystem</plugin></hardware>
</ros2_control><!-- gz --><ros2_control name="GazeboSystem" type="system"><hardware><plugin>gz_ros2_control/GazeboSimSystem</plugin></hardware></ros2_control><!-- 实物 --><ros2_control name="HardwareSystem" type="system"><hardware><plugin>hardware/Hardware</plugin></hardware></ros2_control>

.yaml文件中写法

  • 首先写controller_manager,集中定义系统的东西
  • 接着后面一个一个写控制器的具体内容
# 总起定义,集中管理
controller_manager:ros__parameters:update_rate: 100  # Hzuse_sim_time: truefishbot_joint_state_broadcaster:	# 这个名字是随便取的type: joint_state_broadcaster/JointStateBroadcasteruse_sim_time: truefishbot_effort_controller:type: effort_controllers/JointGroupEffortControllerfishbot_diff_drive_controller:type: diff_drive_controller/DiffDriveController# 对应了上面的控制器名字了,这里详细定义
fishbot_effort_controller:ros__parameters:joints:- left_wheel_joint- right_wheel_jointcommand_interfaces:- effortstate_interfaces:- position- velocity- effortfishbot_diff_drive_controller:ros__parameters:left_wheel_names: ["left_wheel_joint"]right_wheel_names: ["right_wheel_joint"]wheel_separation: 0.17	# 轮距#wheels_per_side: 1  # actually 2, but both are controlled by 1 signalwheel_radius: 0.032		# 轮半径wheel_separation_multiplier: 1.0left_wheel_radius_multiplier: 1.0right_wheel_radius_multiplier: 1.0publish_rate: 50.0odom_frame_id: odombase_frame_id: base_footprintpose_covariance_diagonal : [0.001, 0.001, 0.0, 0.0, 0.0, 0.01]twist_covariance_diagonal: [0.001, 0.0, 0.0, 0.0, 0.0, 0.01]open_loop: trueenable_odom_tf: truecmd_vel_timeout: 0.5#publish_limited_velocity: trueuse_stamped_vel: false#velocity_rolling_window_size: 10

type: joint_state_broadcaster/JointStateBroadcaster的来源

找到ros2的安装路径下的include
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
命名空间: joint_state_broadcaster,类名: JointStateBroadcaster

插件描述文件:
在这里插入图片描述
name: 插件在 YAML 文件中引用的名称,type: C++ 类的完整命名空间路径在这里插入图片描述
通过 PLUGINLIB_EXPORT_CLASS 宏将控制器注册为插件,cpp文件是从github源码找来的,安装ros2_controllers有apt安装和源码编译两种,apt安装的话就会安装到/opt/ros/humble/下,功能集成到.so文件中了。
在这里插入图片描述
后面如果要自己编写插件,也基本按照这个形式,写hpp,写cpp,然后PLUGINLIB_EXPORT_CLASS注册为插件,然后用xml文件完成插件描述。

命令接口关节控制

对joint可以进行位置、速度、力控制,然后需要生成硬件接口。可以有command_interface和transmission两种方式,如果两个都写了,会发出警告说有重复,但不是报错。

command_interface

<ros2_control> 标签,并根据 <command_interface> 和 <state_interface> 直接创建对应的硬件接口

    <joint name="joint"><command_interface name="position"/><command_interface name="velocity"/><command_interface name="effort"/><command_interface name="kp"/><command_interface name="kd"/><state_interface name="position"/><state_interface name="velocity"/><state_interface name="effort"/></joint>

看源码知道能写哪些东西
在这里插入图片描述

transmission

< transmission> 是 ROS2 Control框架中定义关节(Joint)与执行器(Actuator)之间传动关系的关键配置,将物理关节(如电机、舵机)与 ROS2 Control 的控制接口绑定,使控制器能通过硬件接口发送指令,通过 < hardwareInterface> 指定关节支持的控制接口类型(如力矩、位置、速度)。
一般来说transmission项多用于跟实物机器人的时候使用

        <transmission name="joint_tran"><type>transmission_interface/SimpleTransmission</type><joint name="joint"><hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface></joint><actuator name="joint_motor"><hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface><!-- 减速比为0.5,执行器转动 1 圈,关节仅转动 0.5 圈 --><mechanicalReduction>0.5</mechanicalReduction></actuator></transmission>

CMakelist.txt与package.xml文件

例程中的package.xml使用了这些

  <buildtool_depend>ament_cmake</buildtool_depend><build_depend>control_msgs</build_depend><build_depend>geometry_msgs</build_depend><build_depend>rclcpp</build_depend><build_depend>rclcpp_action</build_depend><build_depend>std_msgs</build_depend><exec_depend>ament_index_python</exec_depend><exec_depend>geometry_msgs</exec_depend><exec_depend>launch_ros</exec_depend><exec_depend>launch</exec_depend><exec_depend>rclcpp</exec_depend><exec_depend>robot_state_publisher</exec_depend><exec_depend>ros_gz_bridge</exec_depend><exec_depend>ros_gz_sim</exec_depend><exec_depend>ros2launch</exec_depend><exec_depend>std_msgs</exec_depend><exec_depend>xacro</exec_depend><!-- ros2_control --><exec_depend>ackermann_steering_controller</exec_depend><exec_depend>control_msgs</exec_depend><exec_depend>diff_drive_controller</exec_depend><exec_depend>effort_controllers</exec_depend><exec_depend>gz_ros2_control</exec_depend><exec_depend>hardware_interface</exec_depend><exec_depend>imu_sensor_broadcaster</exec_depend><exec_depend>joint_state_broadcaster</exec_depend><exec_depend>joint_trajectory_controller</exec_depend><exec_depend>mecanum_drive_controller</exec_depend><exec_depend>ros2controlcli</exec_depend><exec_depend>tricycle_controller</exec_depend><exec_depend>velocity_controllers</exec_depend><test_depend>ament_cmake_gtest</test_depend><test_depend>ament_lint_auto</test_depend><test_depend>ament_lint_common</test_depend>

gz_ros2_control与自定义插件

例子描述

看到插件的编写情况差不多都是这样,include,src写c++的实现部分以及注册插件,plugin.xml文件用来描述插件
在这里插入图片描述
在这里插入图片描述
在urdf中写的< plugin>gz_ros2_control/GazeboSimSystem< /plugin>就出自命名空间和类名
在这里插入图片描述

自定义插件使用

http://www.dtcms.com/wzjs/470450.html

相关文章:

  • 如何用自己的电脑做网站人员优化方案怎么写
  • wordpress自制模板广东百度seo
  • 做外贸企业网站网页推广怎么收取费用
  • 门户网站开发项目的风险yandex引擎
  • 做网站用什么数据库好用在线网页编辑平台
  • 交友网站开发的意义seo关键词选取工具
  • 怎么iis设置网站宁波优化网站排名软件
  • 外贸营销邮件沈阳关键词优化费用
  • 发展速度迅猛 具有丰富的网站建设经验百度软文推广怎样收费
  • 淘客怎样做网站百度网址大全官方下载
  • 淮安网站制作设计百度小说搜索风云榜排名
  • wordpress 归档插件北京seo网站优化公司
  • 做民宿加盟哪些网站比较好谷歌浏览器手机版免费官方下载
  • 怎么做营销型网站设计自建网站平台有哪些
  • 阿里云服务器怎么建网站网络营销推广经验总结
  • 石家庄网站建设今天改网名百度账号登陆入口
  • 个人网站页面设计需要那些步骤爱站网seo查询
  • 轻栈小程序官网seo咨询服务价格
  • 电子商务网站的整个建设流程搜索引擎营销的主要方式有
  • 下载建设银行官方网站广州网络推广外包
  • 做网站需要招什么微信朋友圈广告推广
  • 网站备案域名更改发广告去哪个平台
  • 旅游网站设计页面销售管理
  • 专业的网站制作正规公司域名官网
  • 快速建站代理北京seo优化哪家好
  • 企业网站怎么做才能留住客户会计培训
  • 推荐中山精品网站建设百度推广官网首页
  • 社交网站可以做亚马逊联盟吗百度网页版主页网址
  • 接私活 做网站免费seo在线工具
  • 巩义网站建设案例课堂谷歌搜索引擎363入口